无法打开基于Firefox的浏览器

时间:2017-11-14 15:20:16

标签: c# selenium firefox selenium-webdriver webdriver

我尝试使用Selenium WebDriver打开修改过的FireFox浏览器。 (这个基于Firefox的浏览器与原始Firefox一样,只是具有附加功能。)

此浏览器打开,然后我收到错误:

  

[" OpenQA.Selenium.WebDriverException"在WebDriver.dll中]   TypeError:给定browserName [object String]" firefox",但我的名字是[object String]" anotherbrowser"

我的代码[C#]:

var path = new FirefoxBinary(@"C:\FireFox_BasedBrowser\anotherbrowser.exe");
IWebDriver driver = new FirefoxDriver(path, null); //here's error

搜索后我在Java上找到了这个建议:

String bname = "Browser name";
FirefoxOptions options = new FirefoxOptions();
options.setBinary("Path to browser binary");
options.setCapability("browserName", bname);
options.setCapability("marionette", false);
driver = new FirefoxDriver(options);

我尝试将其重写为C#:

DesiredCapabilities cap = DesiredCapabilities.Firefox();
cap.SetCapability("browserName", "anotherbrowser");
cap.SetCapability("firefox_binary", @"C:\FireFox_BasedBrowser\anotherbrowser.exe");
IWebDriver driver = new FirefoxDriver(cap); //here's error

但我也有错误:

  

[" System.ArgumentException"在WebDriver.dll中] 已经有一个browserName功能选项。请用   相反。

请帮助我,我找不到任何解决方案。

P.S。我不能使用原始的Firefox浏览器,因为它与这个改进的Firefox没有相同的优势。

1 个答案:

答案 0 :(得分:0)

使用FirefoxDriverService.CreateDefaultService(...)为Firefox定义另一个路径:

var service = FirefoxDriverService.CreateDefaultService(@"C:\drivers", "geckodriver.exe");
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
var driver = new FirefoxDriver(service);