我有用Selenium RC&写的xpath。现在我想在selenium Webdriver中编写相同的xpath。下面是xpath

时间:2012-12-05 06:46:13

标签: xpath webdriver selenium-webdriver

我有用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中所做的。

请帮我解决这个问题......

2 个答案:

答案 0 :(得分: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表达式。由于布局的任何微小变化,它可能会被打破。最好使用某些特定属性而不是长层次结构。

答案 1 :(得分:0)

一个好的开始方式是从基础开始:http://seleniumhq.org/docs/03_webdriver.html#introducing-the-selenium-webdriver-api-by-example

findElement会做的只是找到你想要与之交互的元素。找到元素后,您需要执行要对元素执行的操作。在您的情况下,您需要元素内的文本。因此,您可以查看WebElement接口的相应函数,并使用适当的方法,例如getText。