【问题标题】:How can I ignore tests when under a particular browser?在特定浏览器下如何忽略测试?
【发布时间】:2013-09-19 17:11:11
【问题描述】:

我的黄瓜套件可以在 Firefox 和 Chrome 上运行。其中一些需要调整浏览器大小,这在 Chrome 中处理起来很糟糕。由于需要调整大小的行为不需要跨浏览器测试,所以当检测到的浏览器是 Chrome 时,我想要一些方法来忽略它们。有没有办法做到这一点?也许有钩子或在台阶上?我目前正在调整之前和之后挂钩的大小。

【问题讨论】:

  • 没有代码存在问题或指示我需要做什么。我需要知道是否有一种模式可以实现这一点。我什至不需要实施,只需要想法。

标签: cucumber selenium-webdriver capybara


【解决方案1】:

我不知道您使用的是哪个 web-driver,但是对于 watir-webdriver,您可以执行以下操作:

您可以使用以下 URL 中的代码确定要跳过的步骤中的浏览器。

http://watirwebdriver.com/determining-which-browser/

一旦您确定它是 chrome,您就可以跳过该特定步骤。

【讨论】:

    【解决方案2】:

    在您的测试助手中,您可以添加这些方法:

    def use_chrome_driver
      Capybara.register_driver :selenium_chrome do |app|
        Capybara::Selenium::Driver.new(app, :browser => :chrome)
      end
      Capybara.current_driver = :selenium_chrome
    end
    
    def setup
      Capybara.current_driver = :selenium
    end
    

    您所有的测试都将使用 selenium 默认的 webdriver,然后当您需要使用 Chrome 时,只需在测试开始时调用 use_chrome_driver 方法即可:

    def test_login_with_chrome
      use_chrome_driver
      ...
    end
    

    您也可以在您的助手中添加您需要的具有正确浏览器大小的 firefox 驱动程序,并使其成为默认的 selenium 浏览器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-20
      • 2019-09-04
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      相关资源
      最近更新 更多