Selenium从多个相同的命名链接中找到特定链接

时间:2014-07-09 23:26:49

标签: selenium

所以情况就是我在一列中有一堆帖子,每条消息旁边都有一条消息和一条删除链接(消息和链接共享一个元素)。我希望能够将消息文本与预定文本进行匹配,然后让Selenium单击该帖子消息旁边的删除链接。这可能吗?

<ul class="announcements unread">
<li>
    <div class="announcement-text">Test message
    <a href="edit/231">Edit</a> <a href="delete/231">Delete</a>
    </div>
</li>
<li>
    <div class="announcement-text">Delete this message
    <a href="edit/232">Edit</a> <a href="delete/232">Delete</a>
    </div>
</li>

链接中编辑和删除背后的数字就像是该消息的ID

2 个答案:

答案 0 :(得分:0)

听起来很可能。

您的帖子看起来像

<Element>
    <Message> some message text </Message>
    <DeleteLink/>
</Element>

因此,您只需循环遍历每个帖子,匹配消息文本,如果找到匹配项,则单击删除链接。

答案 1 :(得分:0)

正如所说,你可以遍历每个帖子:

List<WebElement> list = driver.findElements(By.cssSelector(".element .message"));

for(int i = 0 ; i< list.size() ; i++){
    String message = list.get(i).getText();
    if(message.contains("whatever_you_want"){
        // Here you click on the corresponding delete link
        driver.findElements(By.cssSelector(".element .deleteLink")).get(i).click();
    }
}

请注意,由于我不知道您的HTML是什么样的,因此我根据回答

获取了css选择器的类名