我需要通过selenium从网页的元素中读取文本。这是页面的一部分:
<div id="pDFEA208F010FEDCF6C6F0D5B5DDC97F3154" class="NPC_collapsable NPC_widget NPC_complete NPC_boxselect" data-boxtype="TOGGLE_BUTTONS" data-collapsed="true" style="margin-top: 20px;">
<header class="NPC_widget-header NPC_collapsing-title NPC_statusIcon">
<h3 class="NPC_parameterText">Baugröße</h3>
<span class="NPC_ellipsis NPC_unit"></span>
<span class="NPC_ellipsis NPC_statusIcon" style="color:#0091dc!important"></span>
<span class="NPC_ellipsis NPC_selectedParameterValue" style="font-weight: bold;">6</span>
<span class="NPC_hint"></span>
</header>
我可以通过<h3>Baugröße</h3>
“寻址”页面的部分,我需要得到的是最后一个但是一个跨度的6。
我有:
WebElement gruppe = driver.findElement(By.xpath("//header/h3[text()='" + propertyName + "']"));
System.out.println("Group: " + gruppe.getText() + " <");
// Element in den sichtbaren Bereich(Focus) der Seite bewegen
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", gruppe);
WebElement t1 = driver.findElement(By.xpath("//header/h3[text()='" + propertyName + "']/../span[@class='NPC_ellipsis NPC_selectedParameterValue']"));
System.out.println("Try 1: >" + t1.getText() + "<");
WebElement set = gruppe.findElement(
By.xpath(".//following-sibling::*/span[@class='NPC_ellipsis NPC_selectedParameterValue']"));
System.out.println("set: >" + set.getText() + "<");
这给了我组“Baugröße”,但不是“6”。我明白了:
Group: Baugröße <
Try 1: ><
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":".//following-sibling::*/span[@class='NPC_ellipsis NPC_selectedParameterValue']"} Command duration or timeout: 68 milliseconds
我如何获得这个span元素?
答案 0 :(得分:0)
gruppe这是h3的对象,当你尝试使用gruppe找到元素定位器时,它将搜索元素作为标记h3的子元素,并且没有H3的子元素,因此它给出了未找到的异常元素。
现在要获得值6,你应该使用如下代码的驱动程序对象:
WebElement set = driver.findElement(
By.xpath("//span[contains(@class, 'NPC_ellipsis NPC_selectedParameterValue')]"));
System.out.println("set: >" + set.getText() + "<");
答案 1 :(得分:0)
在我看来,可以从group
标签开始表单hr
。
同样正确的是,您要查找的 span 是 h3 标记,但不是任何级别的子级。因此.//following-sibling::*/
是错误的
尝试:following-sibling::span[@class='NPC_ellipsis NPC_selectedParameterValue']
但是我不明白为什么 t1 没有正确的元素(span),所以其他东西似乎是错误的。