0

私が行った名前で要素を見つけるために:

text_field = driver.find_element_by_name('panelHeader')

問題は...同じ名前の「panelHeader」という名前のパネルが3つあり、特定のWebページでのアクションに応じて、必要なパネル(3つのうち)が表示されることでした。したがって、要素を名前で検索しようとすると、常に最初のpanelHeaderが検索されます。したがって、私が示す名前が表示されているパネルの名前になるように、名前で要素を検索するようなことはできません。

私の言いたいことが分かりますか?

4

2 に答える 2

1

jQueryで見つけてみてください。これは、JAVAで実行できる方法です。Selenium2Java APIで使用するために、JQueryを使用して要素を選択および識別します。jQuerySelectorは次のようになります。

String jQuerySelector = "'$("*[name='panelHeader'].filter(':visible')")'";
于 2012-04-11T12:31:14.097 に答える
0

私はC#を使用していますが、これはPythonでも可能だと思います。すべての要素を名前で取得し、各要素の「表示」値を確認できます。例えば。(C#で、ごめんなさい!:P)

ReadOnlyCollection<IWebElement> things = driver.FindElements(By.Name("panelHeader"));
foreach(IWebElement thing in things)
{
    if (thing.displayed)
    {
        //use thing here! :)
    }
} 
于 2012-04-12T00:05:33.620 に答える