1

我在 Selenium RC 中编写了 xpath,现在我想在 selenium Webdriver 中编写相同的 xpath。下面是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。

如果您能够使用一些 XPath 表达式,然后它也应该在 WebDriver 中工作(在 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 回答