使用水硒处理浏览器对话框(带有确定/取消按钮)的最佳方法是什么?
我发现最简单的方法是运行以下命令:
dialog = page.driver.browser.switch_to.alert
dialog.accept
有什么更好的方法吗?
谁打倒了这篇文章,请给出一个正当的理由......无缘无故地投反对票是没有帮助的
在可能的情况下,应尽量避免直接使用基础驱动程序。通过使用Capybara的API,如果你想改变驱动程序并且存在驱动程序API差异,那么(理论上)你将处于更好的位置。
在Capyabara的项目页面中,处理模态对话框的方法是:
在支持它的驱动程序中,您可以接受、关闭和响应 警报、确认和提示。
您可以通过包装以下代码来接受或关闭警报消息: 在块中生成警报:
您可以通过将确认accept_alert do click_link('Show Alert') end
包装在块中来接受或关闭确认,因为 井:
dismiss_confirm do click_link('Show Confirm') end
您也可以接受或关闭提示,还可以向 填写回复:
accept_prompt(with: 'Linus Torvalds') do click_link('Show Prompt About Linux') end
所有模式方法都返回显示的消息。所以,你可以 通过将返回分配给变量来访问提示消息:
message = accept_prompt(with: 'Linus Torvalds') do click_link('Show Prompt About Linux') end expect(message).to eq('Who is the chief architect of Linux?')