【发布时间】: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