【问题标题】:Running a Selenium test in Firefox creates two tabs and runs the in the "non-active" tab在 Firefox 中运行 Selenium 测试会创建两个选项卡并在“非活动”选项卡中运行
【发布时间】:2018-01-03 11:47:13
【问题描述】:

当我创建 Firefox Web 驱动程序的实例时,它成功地打开了 Firefox。但是,它使用两个选项卡打开它(一个“常规”Firefox 选项卡和一个 IE 选项卡;IE 选项卡处于活动状态,并且在测试期间保持活动状态,除非我手动切换到实际执行测试的选项卡)。

它将在 Firefox 选项卡(即非活动选项卡)中运行测试。

我正在像这样实例化我的 Firefox 网络驱动程序:

var firefoxOptions = new FirefoxOptions()
{
    Profile = new FirefoxProfile(),
    UseLegacyImplementation = false,
    BrowserExecutableLocation = @"C:\Program Files (x86)\Mozilla Firefox\Firefox.exe"
};

firefoxDriver = new FirefoxDriver(firefoxOptions);

firefoxDriver.Manage().Timeouts().ImplicitWait = new TimeSpan(0, 0, 10);

我也会包含单元测试的代码,但是在我运行任何测试之前的初始化期间会出现问题。

另外,当我像这样进行清理时:

[TestCleanup]
public void Cleanup()
{
    if (firefoxDriver != null)
    {
        firefoxDriver.Close();
        firefoxDriver.Dispose();
    }
}

它会关闭运行测试的选项卡(Firefox 选项卡)。但是,它关闭该选项卡 - IE 选项卡和浏览器都保持打开状态。

This question 似乎有些相关,但行为有些不同,因为 Selenium 并没有尝试在两个选项卡中实际执行测试 - 它只使用一个选项卡。此外,那里的 OP 使用的是 Firefox 20.0,而我使用的是 Firefox 52.2.0。

【问题讨论】:

  • 使用firefoxDriver.Quit();而不是firefoxDriver.Close();来终止浏览器。
  • @FlorentB。由于一些我不明白的奇怪原因,firefoxDriver.Quit() 似乎没有任何效果。它不会抛出任何异常或类似的东西。调用firefoxDriver.Close() 两次有效,但它似乎掩盖了实际问题。

标签: c# selenium selenium-webdriver selenium-firefoxdriver


【解决方案1】:

简单地说,我们可以创建配置文件并使用它。我在这里回答Firefox 44.0.1 opening two tabs , when running selenium webdriver code

另一种方式,我们可以像编程一样创建配置文件

FirefoxProfile profile= new FirefoxProfile();
profile.setPreference(“browser.startup.homepage”,”https://...");
WebDriver driver = new FirefoxDriver(profile);

只需在firefox URL中使用about:config,它就会提供设置。

【讨论】:

  • 如所述 driver.quit 结束 selenium 会话,因此所有选项卡/浏览器都关闭。 driver.close 仅​​关闭活动选项卡/浏览器。
  • 我应该把about:config 再次放在哪里?
  • 只需输入firefox的URL字段并回车即可获取所有设置详细信息。仅供参考。不要在代码中使用。
  • 我更喜欢通过调用已保存的配置文件来尝试一次。创建 Firefox 配置文件并进行设置并保存。在硒中调用相同的配置文件。如果它工作正常,那么我们将看到等效的 setPreference
  • 我修改了我的问题中的代码示例以包括设置首选项,因此我将构造函数与FirefoxOptions 一起使用。
猜你喜欢
  • 2013-04-05
  • 2013-06-18
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多