我需要单击浏览器通知的第一个按钮,该通知在单击按钮“删除心愿单”后显示。 该按钮如下;
<a href="/account/wishlistupdate?mainAction=delete&wishlistId=2547474" class="btn btn-danger btn-sm" onclick="return confirm('This action cannot be undone. Are you sure you want to delete this wishlist?')" style="" xpath="1">Delete wishlist</a>
单击该按钮将打开浏览器通知。
我尝试过alert.accept(),但对我不起作用。
public HomePage editWishlist(){
click(edit_button); // By edit_button = By.xpath("//div[@class='btn-edit-text']");
click(deleteWishlist_button); // By deleteWishlist_button = By.linkText("Delete wishlist");
try {
Thread.sleep(1500);
} catch(InterruptedException e) {
System.out.println("got interrupted!");
}
Alert alert = driver.switchTo().alert();
alert.accept();
return this;
}
我该如何管理?
答案 0 :(得分:0)
这是一个Javascript Confirmation Alert
,您可以先switching
接受它,然后accepting
接受它:
driver.switchTo().alert().accept();
类似地,单击cancel
可以调用方法dismiss()
答案 1 :(得分:0)
此弹出窗口,文字为
This action cannot be undone. Are you sure you want to delete this wishlist?
...是WindowEventHandlers的onbeforeunload
属性的实现。
onbeforeunload混合的WindowEventHandlers属性是用于处理EventHandler事件的beforeunload。当窗口即将unload其资源时,将触发这些事件。此时,文档仍然可见,事件仍然可以取消。
跨浏览器解决方案是禁用此对话框,将executeScript()
设置 window.onbeforeunload 设置为function() {};
,您可以使用以下命令解决方案:
driver.execute_script("window.onbeforeunload = function() {};")
中找到相关的讨论