答案 0 :(得分:2)
根据您的上一个问题,我假设您使用的是Watir-Classic(即使您还列出了Watir-Webdriver)。
正如@orde在评论中提到的,Watir有一个Alert
类用于处理这些类型的对话框。不幸的是,就点击按钮而言,Watir-Classic只有#ok
method defined:
# Press the "OK" button on the JavaScript dialog.
def ok
dialog.button(:value => "OK").click
wait_until_not_exists
end
这对于此对话框不起作用,因为有一个"是"和"不"按钮而不是" OK"按钮。您需要使用正确的值复制此功能。
请注意,dialog
是一个RAutomation窗口,不再是Watir特定代码。因此,按钮值并不总是直观的 - 它并不总是只是您看到的文本。要获得正确的值,您应该询问对话框它看到的值:
browser.alert.send(:dialog).buttons.map(&:value)
#=> ["&Yes", "&No"]
然后我们可以使用#ok
方法进行相同的调用,但使用正确的值:
alert = browser.alert
alert.send(:dialog).button(:value => '&Yes').click
alert.wait_while_present
答案 1 :(得分:0)
此代码可以正常处理此类弹出窗口:
save_dialog = WIN32OLE.new("AutoItX3.Control") save_dialog.ControlClick("Windows Internet Explorer", "Yes", "[CLASS:Button;INSTANCE:1]")