在网页中,有25条消息可以具有不同的状态,例如打开,已分配等。
如果消息为打开状态,我想单击"分配"按钮,即时生成 ID。在这种情况下如何识别和如何点击
以下是页面中存在的按钮之一的代码
<a style="color:blue"
class="btn assign"
data-userchannel="tw_757840449054711808~28353935~1000"
data-elementid="tw_757840449054711808"
id="tw_757840449054711808"
title="Assign to user"
rel="act"
href="/work/assignWork?messageId=tw_757840449054711808~SOLR&dataSource=SOLR&profileId=2305&s360securetoken=mZ2GV6Tbfw7RubGR3Q05_dLM-XM"
data-tooltip="Assign to user">
</a>
静态元素包括类、标题、工具提示。 如何实现此方案。
经过所有讨论,如果您想选择第一个按钮assign
您只需尝试使用 findElement
,它为您提供第一个assign
按钮:-
driver.findElement(By.cssSelector("a.btn.assign")).click();
现在正如您所说,页面中有两个功能 批量assign
和DOM
中的单个assign
,批量assign
排在第一位,因此它被选中,但您想选择批量assign
之后的单个分配,然后您应该尝试使用 findElements
查找所有assign
按钮并使用索引选择其中任何一个,如下所示:-
List<WebElement> elements = driver.findElements(By.cssSelector("a.btn.assign")).click();
if(elements.size() > 2) {
//Now here you can pass index to get individual assign button
elements.get(1).click(); //it will click second assign button and so on
}
或者您可以使用xpath
找到第一个单独的assign
按钮,如下所示:-
driver.findElement(By.xpath("(//*[@class = 'msgContent']/descendant::a[contains(@class,'btn assign')])[1]")).click();
希望它有帮助..:)
理解正确,您的问题是分配按钮位置不正确?如果是这种情况,那么为什么不使用XPath定位器,如下所示:.//a[@title='Assign to user']
。你可以把它包装在WebDriverWait上,等到元素出现。