Google Chrome中的弹出窗口阻止导致Capybara/Rspec测试问题

The*_*eek 10 google-chrome webdriver popup-blocker capybara

我正在使用Capybara/RSpec编写一些自动化测试,我通过使用这一点ruby来选择/配置驱动程序:

Capybara.register_driver :selenium_chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Run Code Online (Sandbox Code Playgroud)

我正在测试我点击的按钮是否打开弹出窗口,窗口是否显示应该显示的内容.问题是当测试打开窗口时,Google Chrome弹出窗口阻止程序会阻止它,导致测试失败.从选项菜单中禁用阻止程序不起作用.另外,我担心一旦我在服务器上运行它们就会导致同样的问题.

有没有办法自动禁用测试的弹出窗口?

hwj*_*wjp 7

我们有一个非常相似的问题.就像约翰所说,命令行开关不再有效.我们尝试使用自定义配置文件,但它似乎被覆盖了.

最终通过手动禁用弹出窗口来解决它WebDriver:

driver.get('chrome://settings/advanced')
driver.find_element_by_id('privacyContentSettingsButton').click()
driver.find_element_by_name('popups').click()
Run Code Online (Sandbox Code Playgroud)

我想,这更像是用户会做的事情;-)


小智 7

您可以使用选项调用驱动程序.

ChromeOptions options = new ChromeOptions();
options.addArguments("-incognito");
options.addArguments("--disable-popup-blocking");

ChromeDriver driver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)