当前位置: 首页 > 知识库问答 >
问题:

如何使用Selenium WebDriver查找DIV中的元素

越雨泽
2023-03-14

我试图找到一种方法来获取div的值,但是我无法通过Xpath或CSSSelector找到元素。在这两种情况下(Xpath和cssSelector),Eclipse控制台都会显示错误消息:

org.openqa.selenium.nosuchelementException:没有这样的元素:找不到元素:{“method”:“XPath”,“selector”:“//b[text()='protocolo:snico']/following::span1”}

使用xpath,我可以找到我需要的值,但我不能获得它并在变量中使用它。下面是带有页面的HTML和我制作的xpath的图像。

public String verifyTextAssert(By by) {

    return driver.findElement(by).getText();

}

在TratOsFatRoamPage类中,我创建了getNuPu方法,该方法调用verifyTextAssert方法,并将xpath传递给该方法,并且应该返回找到的值。

private String obterNuPu() {

    return verifyTextAssert(By.xpath("//b[text()='Protocolo Único ']/following::span[1]")); 

}

<fieldset style="margin-bottom:10px;">
    <div id="content_titulo">Informações Gerais</div>
    <div style="padding-top:10px; padding-bottom: 10px; padding-left:5px; height:150%;">
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">ID Atendimento </b> <br> <span>5574474205</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Protocolo Único </b> <br> <span>2018227017094</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"><b class="label_tratamento ">Data Abertura </b> <br> <span>21/03/2018</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Hora Abertura </b> <br> <span></span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"><b class="label_tratamento ">Nome do Cliente </b> <br> <span></span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Tipo Cliente </b> <br> <span></span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Motivo 1 </b> <br> <span>Reclamação</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Motivo 2 </b> <br> <span>Claro Conta</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Motivo 3 </b> <br> <span>Contestação</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Motivo 4 </b> <br> <span>Serviços</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Motivo 5 </b> <br> <span>Pacote de Internet</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Worklist </b> <br> <span>BackOfficeAjusteRoaming GE</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">CNPJ </b> <br> <span>19988702272</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">MSISDN </b> <br> <span>69993932002</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">MSISDN2 </b> <br> <span></span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Status PS8 </b> <br> <span>Pendente</span></div>
        <div style="float:left; width:24%; padding-top:5px; padding-bottom: 8px; padding-left:5px; height:30px; font-size:x-small;"> <b class="label_tratamento ">Quem Abriu </b> <br> <span></span></div><input type="hidden" name="Id_Estrategia_Logado" id="Id_Estrategia_Logado" value="359"><input type="hidden" name="Id_Atividade_Logado" id="Id_Atividade_Logado" value="0">

    </div>
</fieldset>

共有1个答案

彭修筠
2023-03-14

您的XPath似乎是正确的。一个建议是尝试查找您的页面中是否有iframes。如果是,请查看您的元素是否在其中一个元素中。第二个建议是查看元素css属性,如果没有“奇怪的”属性

 类似资料:
  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 我正在使用appium测试android混合应用程序。有人能告诉我如何使用UIAutomator查找元素吗?因为appium给出的xpath在我的例子中不起作用。 非常感谢!

  • 问题内容: 如何在 不 使用jQuery之类的库的 情况下 以跨浏览器兼容的方式找到的当前宽度? 问题答案: document.getElementById(“mydiv”).offsetWidth element.offsetWidth(MDC)

  • 我已经成功地在一个分隔符中获取了如下所示的文本:

  • 我想点击一个网站上的按钮。有没有一个代码可以让我通过使用文本字段来点击元素?我既不能使用资源id字段,也不能使用名称,因为它们是空的。我尝试使用xpath单击元素,但没有成功。

  • 问题内容: 我如何在seleniumwebdriver 3.0 beta版本中使用geckodriver。当我实例化Firefox时: 我得到错误: 线程“主”中的异常java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;否则,必须执行以下操作:有关更多信息,请参见 https://github.co