1

Selenium RC で xpath を書きましたが、同じ xpath を Selenium Webdriver で書きたいと思っています。以下はxpathです:

"//table[@id='lgnLogin']/tbody/tr/td/table/tbody/tr[4]/td"

この xpath を使用して、アプリケーションに表示される「パスワードを確認してください」などのエラー メッセージをキャプチャしています。

Webdriverでどのように書くことができますか。私はさまざまな方法を持っていますが、うまくいきませんでした。

"String msg= driver.findElement(By.xpath("//*[@td='error2']")).toString();"- これは私が Webdriver で行ったことです。

これについて私を助けてください...

4

2 に答える 2

2

XPath は Selenium RC から WebDriver に変更されていません。

WebDriver でも機能する前に XPath 式を使用できた場合 (通常の 99% の場合)。

以下のコードは機能するはずですが、HTML を見ずに回答するのはかなり困難です。

String msg= driver.findElement(By.xpath("//table[@id='lgnLogin']/tbody/tr/td/table/tbody/tr[4]/td")).getText();

//*[@td='error2']- この表現は、「"td" という名前の属性と値 "error2" を持つ任意の要素」を意味するため、不適切に見えます。HTML に 'td' 属性がないと思います。

そして最後まで。あなたの例のような長い XPath 式を使用することはお勧めしません。ちょっとしたレイアウト変更で壊れる可能性があります。長い階層ではなく、いくつかの特定の属性を使用することをお勧めします。

于 2012-12-05T18:18:53.037 に答える
0

始める良い方法は、基本から始めることです: http://seleniumhq.org/docs/03_webdriver.html#introducing-the-selenium-webdriver-api-by-example

findElement が行うことは、対話したい要素を見つけることだけです。要素を見つけたら、要素に対して実行するアクションを実行する必要があります。あなたの場合、要素内のテキストが必要です。したがって、WebElement インターフェイスの適切な関数を調べて、適切なメソッド (この場合は getText) を使用できます。

于 2012-12-05T08:08:12.870 に答える