自动化方面很陌生,直到现在才出现问题
我有一个按钮,一旦点击,会出现一个弹出按钮,可以点击它,它会执行某个动作。
我到了第二个按钮,它似乎点击它,但它没有执行相关的操作
我的代码
//First Button//
WebElement AddUserSelect =
chromeDriver.findElementBy.id(
"j_idt67:j_idt68:j_idt69:j_idt229:pendingTable:dataTable:0:j_idt280_menuButton"));
AddUserSelect.click();
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Second Button//
WebElement AddUser =
chromeDriver.findElement(By.id(
"j_idt67:j_idt68:j_idt69:j_idt229:pendingTable:dataTable:0:j_idt281"));
AddUser.click();
我检查时页面上的元素
<a
id="j_idt67:j_idt68:j_idt69:j_idt229:pendingTable:dataTable:0:j_idt281"
class="ui-menuitem-link ui-corner-all" href="#"
onclick="PrimeFaces.ab({s:"j_idt67:j_idt68:j_idt69:j_idt229:pendingTable:dataTable:0:j_idt281",p:"j_idt67",u:"j_idt67",f:"j_idt67"});return false;"
>
<span class="ui-menuitem-icon ui-icon ui-icon-extlink"></span>
<span class="ui-menuitem-text">
Add
</span>
</a>
任何帮助都会受到赞赏。谢谢你
答案 0 :(得分:1)
根据您所共享的 HTML ,您可以定位第二个内部范围标记,并可以使用以下定位器策略来点击目标元素:
chromeDriver.findElement(By.xpath("//a[@class='ui-menuitem-link ui-corner-all' and starts-with(@id,'j_idt')]//span[@class='ui-menuitem-text']")).click();
根据您的评论更新,因为上一行代码找到了该元素,但无法操作作为替代,您可以使用 Javascript Click ,如下所示:
WebElement elem = chromeDriver.findElement(By.xpath("//a[@class='ui-menuitem-link ui-corner-all' and starts-with(@id,'j_idt')]//span[@class='ui-menuitem-text']"));
driver.executeScript("arguments[0].click();", elem);
通过 WebDriverWait 诱导服务员,如下所示:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='ui-menuitem-link ui-corner-all' and starts-with(@id,'j_idt')]//span[@class='ui-menuitem-text']"))).click();