【问题标题】:How to identify element using following-sibling method in selenium如何在硒中使用以下兄弟方法识别元素
【发布时间】:2021-09-24 07:09:27
【问题描述】:

以下代码我需要识别第三个 li 元素(用户列表)。我如何共同使用硒?

我试过用,

String usertype= //td[text()='product']
String usersubtype= li[@class='user-list dropbutton-action secondary-action']

String adduser = usertype +"following-sibling::td//" +usersubtype+"/a"

我必须使用以下方法。因为我的代码 usertypeusersubtype 值来自不同的地方

(以上字符串仅供参考)

但它无法解决。请帮我识别第三个 li 元素(用户列表)

我需要在代码中识别以下元素

<li class="content-list dropbutton-action secondary-action"><a href="/admin/structure/eck/entity/product">User list</a></li>

下面是我的代码sn-p:

<tr class="even">
<td>product</td>
<td>product</td>
<td>
    <div class="code-wrapper dropbutton-multiple">
        <div class="dropbutton-widget">
            <ul class="dropbutton">
                <li class="user dropbutton-action"><a href="/user/userlist/abc/productcontent/add">Add User</a></li>
                <li class="dropbutton-toggle"><button type="button"><span class="dropbutton-arrow"><span class="visually-hidden">List actions</span></span></button></li>
                <li class="user-list dropbutton-action secondary-action"><a href="/user/userlist/abc/productproduct">User list</a></li>
                <li class="user-list dropbutton-action secondary-action"><a href="/user/userlist/abc/productproduct/types">Test list</a></li>
                <li class="edit dropbutton-action"><a href="/user/userlist/abc/productmanage/product?destination=/admin/structure/eck/entity_type">Edit</a></li>
                <li class="delete dropbutton-action"><a href="/user/userlist/abc/productmanage/product/delete?destination=/admin/structure/eck/entity_type">Delete</a></li>
            </ul>
        </div>
    </div>
</td>

【问题讨论】:

    标签: java selenium selenium-webdriver xpath automation


    【解决方案1】:

    您的定位器的问题是它不正确。 following-sibling:: 中缺少双斜杠。

    尝试更改:

    //td[text()='product']following-sibling::td//li[@class='user-list dropbutton-action secondary-action']
    

    收件人

    //td[text()='product']//following-sibling::td//li[@class='user-list dropbutton-action secondary-action']/a
    

    完整代码:

    String usertype= //td[text()='product']
    String usersubtype= li[@class='user-list dropbutton-action secondary-action']
    
    String adduser = usertype +"//following-sibling::td//" +usersubtype+"/a"
    

    截图:

    【讨论】:

    • 谢谢。但我需要单击该 li 标签下的 href 元素。它隐藏的一个。每当我尝试单击它时,都会显示 ,因此我无法单击该元素。但是当我使用这个 xpath 时,我必须将值设为“ 用户列表 然后只有我可以单击该元素。
    • @ManojSoundarrajan 您能否分享您的完整代码,例如您如何单击元素等,如果可能的话,您能否提供此场景的步骤用例的步骤。在这种情况下,我没有听懂您想说的和要实现的目标。
    • 我解决了这个兄弟。感谢帮助。这个元素属于一个下拉选项 //td[text()='product']//following-sibling::td//li[@class='user-list dropbutton-action secondary-action']/a 所以当我尝试直接单击此元素时,它不起作用。因为>>>。隐藏在下拉字段下的元素。因此,我首先单击了该下拉按钮,然后确定了上述元素。它现在工作正常。谢谢你的帮助。您的答案是最合适的,所以我将您的答案标记为可以接受。请在linkedin中接受我的请求:)
    • @ManojSoundarrajan 当然,谢谢兄弟?
    【解决方案2】:

    为什么不简单:

    //li[contains(@class,'content-list')]
    

    或使用 css 选择器

    li.content-list
    

    ?

    【讨论】:

    • 或者您必须添加更多细节以使其更精确?
    • 我必须使用以下方法。因为我在我的代码中添加了两个值来制作定位器。在代码中添加了更多细节
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多