无法在内部找到元素<;图>;SeleniumWebDriverJava中的标记
我有下面的html源代码。在SeleniumWebDriver中,使用下面的代码计算包含文本“ABC”的webelements的数量时,它工作并返回1。但当尝试计算文本“PQR”或“XYZ”时,它返回0 (1) 如何为PQR/XYZ获取1? (2) 我想用class=“meter value”获得所有元素的值列表。即0%、100%等 有人能帮忙吗?我搞不懂无法在内部找到元素<;图>;SeleniumWebDriverJava中的标记,java,selenium-webdriver,Java,Selenium Webdriver,我有下面的html源代码。在SeleniumWebDriver中,使用下面的代码计算包含文本“ABC”的webelements的数量时,它工作并返回1。但当尝试计算文本“PQR”或“XYZ”时,它返回0 (1) 如何为PQR/XYZ获取1? (2) 我想用class=“meter value”获得所有元素的值列表。即0%、100%等 有人能帮忙吗?我搞不懂 listextdemo=driver.findElements(By.xpath(“/*[contains(text(),'ABC')]”)
listextdemo=driver.findElements(By.xpath(“/*[contains(text(),'ABC')]”);
System.out.println(“web元素的数量:+textDemo.size())代码>
HTML:-
<div data-reactroot="">
<div class="object-bar">
<img id="spinner" src="data:image/gif;base64,XXXXlhIAAgAPUmANnZ2fX19efn5" hidden="">
<a href="SOME URL" class="abc-link">
<svg viewBox="0 0 24 24"></svg>
<!-- react-text: 7 -->
ABC Home
<!-- /react-text -->
</a>
</div>
<div class="body">
<figure>
<div class="gauge">
<div class="meter"></div>
<div class="meter-value-container">
<div class="meter-value">0%</div>
</div>
</div>
<figcaption>
<!-- react-text: 15 -->
PQR
<!-- /react-text -->
<div>(40960 of 40960 left)</div>
</figcaption>
</figure>
<figure>
<div class="gauge">
<div class="meter"></div>
<div class="meter-value-container">
<div class="meter-value">100%</div>
</div>
</div>
<figcaption>
<!-- react-text: 23 -->
XYZ
<!-- /react-text -->
<div>(200 of 200 left)</div>
</figcaption>
</figure>
</div>
</div>
0%
PQR
(40960个中的40960个左)
100%
XYZ
(左200/200)
如果要获取所有标题节点,请尝试以下xpath
//*[@class='meter-value']/parent::div/parent::div/following::figcaption
如果您想通过包含文本进行搜索,请尝试以下操作
//figcaption[contains(,'PQR')]
-这应该返回1个元素。text()方法在存在与文本平行的HTML元素时不起作用。尝试使用“.”获取文本。请按以下方式尝试:
List<WebElement>textDemo= driver.findElements(By.xpath("//*[local-name()='figure']"));
System.out.println("Number of web elements: " +textDemo.size());
listextdemo=driver.findElements(By.xpath(“/*[local-name()='figure']);
System.out.println(“web元素的数量:+textDemo.size());
针对一个问题
PQR和XYZ-//figcaption
只有XYZ-//figcaption[包含(,“XYZ”)]
只有PQR//figcaption[包含(,“PQR”)]
对于2个问题
//div[@class=“米值”]
我想我是通过在下面的代码之前使用WebDriverWait
实现的。现在它找到了元素
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='meter-value']")));
非常感谢。但不知何故,它仍然不起作用。我用过这个。ListtextDemo=driver.findElements(By.xpath(“//div[@class='meter value']”);System.out.println(“web元素的数量:+textDemo.size());结果-web元素数:0只要我在标记之外工作,它就会工作。xpath(“//div[@class='body']”)返回1。如果我使用…By.xpath(“//div[@class='gauge']”),那么它只返回0。@Sanjay您可以通过开发人员控制台在浏览器页面上找到此xpath吗?您能给我看一下站点(链接)吗?对于第一个“米值”,开发者控制台的xpath是//*[@id=“root”]/div/div[2]/figure[1]/div/div[2]/div@Sanjay,不,您需要在搜索栏中输入xpath,谢谢,但是它仍然只返回0。如果通过标记名找到,它是否标识图形标记?不,它不标识。我在下面尝试过,它返回0 listextdemo=driver.findElements(按.tagName(“图”));System.out.println(“web元素的数量:+textDemo.size());这仍然是个问题吗?我已经更新了解决方案。请试一试。检查图形标签是否已识别