如何在 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

它在任何方面都不完美,但目前它是一个解决方案,如果您有更好的摆脱这些的方法,请告诉我。

谢谢。