<span _ngcontent-c3 =“” xpath =“ 1”> 5 </span

时间:2019-07-08 05:56:10

标签: selenium selenium-webdriver selenium-chromedriver

我无法从代码中获得动态文本“ 5”。当我使用gettext()获得0而不是5时

<span _ngcontent-c3="" xpath="1">5</span>

我尝试了xpath = "//div[4]//div[1]//div[2]//div[1]//p[3]//span[2]"

5

获取“ 0”而不是“ 5”

enter image description here

3 个答案:

答案 0 :(得分:0)

您的XPath表达式很可能匹配多个元素,请尝试调用findElements()而不是findElement()并检查返回的List的大小

List<WebElement> elements = driver.findElements(By.xpath("//div[4]//div[1]//div[2]//div[1]//p[3]//span[2]"));
System.out.println("Found " + elements.size() + " matching elements");

如果结果> 1-您需要修改表达式。如果您有1-您将仍然必须修改表达式以匹配正确的元素。

到目前为止,您可以坚持使用此xpath attribute值,例如:

//span[@xpath='1']

参考文献:

答案 1 :(得分:0)

知道了,我需要等待一段时间才能默认从应用程序获取文本,或者当页面加载时值为“ 0”

添加thread.sleep(2000)之后;在gettext()之前;我正在获得动态价值。

答案 2 :(得分:0)

我看到了并且我假设“正在使用的自行车”是静态的。所以我们可以使用祖先xpath 喜欢

span[text() = 'Bikes In Use']/ancestor::p

如果xpath中缺少某些内容,您可以纠正它