使用Count-Selenium获取xpath的值

时间:2019-07-02 19:50:52

标签: selenium xpath

我正在尝试获取此xpath的字符串或整数,但是当我使用this时,会出现一些错误,例如xpath不可见。

我正在使用的xpath是这样的:

count(//tr[@class='dataRow even  first last']//following::input[text()='Ferrocaril'])

当我使用xpath助手知道我得到了什么时,它显示为“ 1”,这很好,因为有1个具有该值的xpath,但是在其他情况下,该值大于1。

所以我不确定在这种情况下如何断言。

assert.assertequals在我的情况下不起作用。

我在Java中使用硒。

1 个答案:

答案 0 :(得分:0)

如果您提供了不会映射到WebDriver.findElement()WebElement的XPath表达式,

List方法将返回NodeNodeset的WebElements-您将有一个错误。

解决方案是使用findElements()方法和不带count()函数的XPath表达式,一经完成,您将可以根据预期值声明返回的列表大小。

示例(假设TestNG framework):

List<WebElement> matches = driver.findElements(By.xpath("//tr[@class='dataRow even  first last']//following::input[text()='Ferrocaril']"));
org.testng.Assert.assertEquals(matches.size(), 1, "Failed to find expected text in the table");