如何使用Selenium自动化程序点击警告框上的“是”或“否”按钮(而不是“确定/取消”)?

3
我试图使用Selenium (Java)单击警报弹出消息上的“是/否”按钮。我知道我们有accept()函数可以单击任何警报的“确定”按钮,但在这种情况下无效。
我尝试了以下代码:
Alert alert = driver.switchTo().alert();
alert.accept();

这是警报信息的HTML代码:
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
 <div class="ui-dialog-buttonset">
 <button type="button" class="ui-button ui-widget ui-state-default ui-corner- 
 all ui-button-text-only" role="button" aria-disabled="false">
  <span class="ui-button-text">Yes</span>
 </button>
 <button type="button" class="ui-button ui-widget ui-state-default ui-corner- 
 all ui-button-text-only" role="button" aria-disabled="false">
  <span class="ui-button-text">No</span>
 </button>
</div>
</div>

Please help!


你能检查弹出窗口吗?如果可以,请分享HTML代码。 - Raj
你能给我们提供URL吗? - Rajagopalan
我更新了问题并分享了警告消息的HTML代码。 - P. H. Nabila
你可以尝试使用以下代码(无需切换到警告框):new WebDriverWait(driver,10).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Yes']/parent::button"))).click(); - cruisepandey
3个回答

1
您只需要简单地点击“是”按钮即可,无需切换到警告框。
代码:
new WebDriverWait(driver,10).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Yes']/parent::button"))).click();

1

您可以使用一个带参数函数来点击是/否。 如果要点击“是”,请使用:ClickYesNoButton("Yes"); 如果要点击“否”,请这样调用函数:ClickYesNoButton("No");

以下是代码:

public void ClickYesNoButton(String yesOrno){
                String myXpath =    "//span[text()='XXXX']";
                driver.findElement(By.xpath(myXpath.replace("XXXX", yesOrno))).click();
                }

0
这不是 Javascript 警告
使用此 xpath 单击该按钮。
"//span[normalize-space()='Yes']/.."

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接