Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在内部找到元素<;图>;SeleniumWebDriverJava中的标记_Java_Selenium Webdriver - Fatal编程技术网

无法在内部找到元素<;图>;SeleniumWebDriverJava中的标记

无法在内部找到元素<;图>;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')]”)

我有下面的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')]”);
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());这仍然是个问题吗?我已经更新了解决方案。请试一试。检查图形标签是否已识别