Selenium Java |查找/单击类中嵌套xpath的按钮时遇到问题
问题: 我不知道如何单击我需要的特定按钮,以及如何确保该按钮未高亮显示 1) 在主页上,每个页面都有一个按钮。它们都有自己的关闭/报告按钮 2) 我只需要选择非突出显示的页面,然后单击关闭按钮 我可以用它来点击按钮,但我不知道它是否高亮显示Selenium Java |查找/单击类中嵌套xpath的按钮时遇到问题,java,selenium,xpath,Java,Selenium,Xpath,问题: 我不知道如何单击我需要的特定按钮,以及如何确保该按钮未高亮显示 1) 在主页上,每个页面都有一个按钮。它们都有自己的关闭/报告按钮 2) 我只需要选择非突出显示的页面,然后单击关闭按钮 我可以用它来点击按钮,但我不知道它是否高亮显示 By.xpath("//button[@type='button'])[8].click(); 我尝试过这样做,但没有成功: By.xpath("//li[@class='media'] and //button[@type='button']").cli
By.xpath("//button[@type='button'])[8].click();
我尝试过这样做,但没有成功:
By.xpath("//li[@class='media'] and //button[@type='button']").click();
下面是每个页面的外观。有些突出显示,有些在类名中
<li class="media highlighted">
<div class="media-options">
<button type="button" class="close" title="Close page">Delete this page</button>
<button type="button" class="report" title="Report page">Report this page</button>
</div>
删除此页
报告本页
删除此页
报告本页
删除此按钮:-
driver.findElement(By.xpath("//li[@class='media highlighted']//button[@class='close']"));
driver.findElement(By.xpath("//li[@class='media highlighted']//button[@class='report']"));
对于报告此按钮:-
driver.findElement(By.xpath("//li[@class='media highlighted']//button[@class='close']"));
driver.findElement(By.xpath("//li[@class='media highlighted']//button[@class='report']"));
您可以从元素的css类属性中了解元素是否高亮显示
String liClassAttribute = driver.findElements("//li[@class='media'][1]").getAttribute("class");
这里我已经解释了如何获取第一个li项的class属性
但是,根据您的问题,您需要单击非突出显示的项目。因此,获取所有列表项的列表,获取li的每个项的class属性,如果它没有突出显示,您可以根据您的需求进行操作
伪代码:
List<WebElement> liElementList = driver.findElement("//li[@class='media']);
for(WebElement elem : liElementList) {
String liClassAttr = liElementList[0].getAttribute("class");
if ( !liClass.contains("highlighted")){
// you found the non-highlighted list item
// act on it or ignore it based on your business logic.
}
}
List-liElementList=driver.findElement(//li[@class='media']);
for(WebElement元素:liElementList){
字符串liClassAttr=liElementList[0]。getAttribute(“类”);
如果(!liClass.contains(“突出显示”)){
//您找到了未突出显示的列表项
//根据您的业务逻辑采取行动或忽略它。
}
}