java - 具有多个条件的 xpath 将包含 'a' 和 'div' 标记

标签 java eclipse selenium webdriver

下面是完整的 HTML 标记,我想在其中使用具有多个条件的 xpath。

<div class="request-body comments-left-discription clickme" style="cursor:pointer; " id="12340" title="" data-placement="bottom" data-toggle="tooltip" mode="">
        <div class="desc-title">
            <a target="_blank" class="site-color" href="http://test://0316">Nutan</a> requested <a href="http://test://0316">Approval</a></div>
            <div class="msg-time"><small><a rel="tooltip" data-placement="right" title="" class="color6" href="#" data-original-title="Created on, ">ago</a>  (020 )</small></div>
            Auto            <br>
            <div class="btn" id="button">
                <a id="accept" class="b" href="javascript:void(0);">APPROVE</a><a id="reject" class="btn" href="javascript:void(0);">REJECT</a>                </div>    
            </div>

在上面的 HTML 中,我想在一个 xpath 语句中使用以下条件,我在下面这样写,它显示无法定位元素。

driver.findElements(By.xpath("//div[starts-with(@id,'1234')"
                + " and //a[contains(text(),'off')]]]"));

最佳答案

a 标签位于 div 标签下方,因此您可以为此使用下面给出的相对 xpath:

driver.findElement(By.xpath("//div[contains(@id,'5e9b7')]//a[contains(text(),'Compensatory-off Approval')]"))

与OP讨论后更新答案:

List<WebElement> elementList = driver.findElements(By.xpath("//div[contains(@id,'5e9b7')]//a[contains(text(),'Compensatory-off Approval')]"));
if(elementList.size()>0){
    // Element is present
    // Do the required operations here
}

关于java - 具有多个条件的 xpath 将包含 'a' 和 'div' 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61317525/

相关文章:

python selenium firefox - add_extension 不起作用

java - 获取 Groovy 项目中使用的 Selenium 版本

java - Hibernate 中的多对一映射

java - 如何在不使用Eclipse的情况下设置Tomcat的引导项?

Android 应用程序没有启动图标

java - 即使我捕获它,也会抛出 NoSuchElementException 吗?

java - JFreechart 中漂亮的饼图

java - 为 Spring boot 应用程序编写 Spock 测试用例

java - for 循环执行的次数比应有的次数多 - 节拍器程序

java - 颠覆 : blame for past revision