如何在 Ruby 中使用 Selenium Webdriver 关闭弹出窗口
How to dismiss popups with Selenium Webdriver in Ruby
我收到这样的弹出窗口...
...或者像这样...
...通过我的 Selenium 自动化测试,我在 SauceLabs 上远程 运行。我尝试了很多方法来禁用它们或解雇它们,但似乎没有任何效果。我尝试为我的能力添加一个设置:
autoAcceptAlerts: true
我也试过用驱动程序本身切换到警报:
def click css_selector
begin
browser.find_element(:css, css_selector).click if rendered? css_selector
rescue Selenium::WebDriver::Error::UnknownError
browser.switch_to.alert.accept
click css_selector
end
end
但似乎没有任何效果。我敢肯定有人以前必须处理过这样的事情,祝你好运解决这个问题,最好是 "cross-browser"?
谢谢...
我通过使用 send_key 方法模拟按下转义键解决了这个问题:
def click css_selector
begin
browser.find_element(:css, css_selector).click if rendered? css_selector
rescue Selenium::WebDriver::Error::UnknownError
dismiss css_selector
click css_selector
end
end
def dismiss selector
browser.find_element(:tag_name, "body").send_keys :escape
end
它在任何方面都不完美,但目前它是一个解决方案,如果您有更好的摆脱这些的方法,请告诉我。
谢谢。
我收到这样的弹出窗口...
...或者像这样...
...通过我的 Selenium 自动化测试,我在 SauceLabs 上远程 运行。我尝试了很多方法来禁用它们或解雇它们,但似乎没有任何效果。我尝试为我的能力添加一个设置:
autoAcceptAlerts: true
我也试过用驱动程序本身切换到警报:
def click css_selector
begin
browser.find_element(:css, css_selector).click if rendered? css_selector
rescue Selenium::WebDriver::Error::UnknownError
browser.switch_to.alert.accept
click css_selector
end
end
但似乎没有任何效果。我敢肯定有人以前必须处理过这样的事情,祝你好运解决这个问题,最好是 "cross-browser"?
谢谢...
我通过使用 send_key 方法模拟按下转义键解决了这个问题:
def click css_selector
begin
browser.find_element(:css, css_selector).click if rendered? css_selector
rescue Selenium::WebDriver::Error::UnknownError
dismiss css_selector
click css_selector
end
end
def dismiss selector
browser.find_element(:tag_name, "body").send_keys :escape
end
它在任何方面都不完美,但目前它是一个解决方案,如果您有更好的摆脱这些的方法,请告诉我。
谢谢。