当我创建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。
答案 0 :(得分: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网址中使用 about:config ,它就会提供设置。