我无法从代码中获得动态文本“ 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”
答案 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中缺少某些内容,您可以纠正它