0

クロムでは、xpath値を取得します: //*[@id='user_change_pw_form']/div[3]/span

firebug の同じ要素については、次のようになります。 /html/body/div[2]/form/div[3]/span

Seleniumテストケースで同じ要素を取得するために、なぜそのようなxp​​athクエリを分離する必要があるのですか?

switch (System.getProperty("test.driver")) 
        {
            case "chrome":
            case "html":
                text = driver.findElement(By.xpath("//*[@id='user_change_pw_form']/div[3]/span")).getText();


            case "gecko":
                text = driver.findElement(By.xpath("/html/body/div[2]/form/div[3]/span")).getText(); 
                break;

        }

両方の xpath クエリが両方のブラウザー コンソールで機能しますが、それぞれのカウンターパートは間違ったブラウザーに「要素を見つけることができません」と表示します。

前もって感謝します!

4

2 に答える 2

0

ブラウザーベースのセレクターに頼るのではなく、独自の xPaths / CSS セレクターを作成してみてください。このリンクは、独自のセレクターを学習/作成するのに役立ちます。

また、読みやすいため、xpath よりも CSS セレクターを使用することをお勧めします。

于 2016-11-25T11:44:59.537 に答える