更新到 Marionette 驱动程序 C#
Updating to Marionette Driver C#
好吧,你们中的许多 webdriver 测试人员都知道 Firefox 47 的发布已经破坏了 Webdriver.FirefoxDriver。我能找到的所有文档都告诉我新的 FirefoxDriver 是 Marionette.
所以我已经从 https://github.com/mozilla/geckodriver/releases 下载了最新的可执行文件
重命名为 wires.exe 并移至我的测试目录。
这是我的设置方法
[TestFixture("chrome")]
[TestFixture("firefox")]
//[TestFixture("internet explorer")]
[Category("ExistingUser")]
public class ExistingUserTestSuite
{
public string browser;
public IWebDriver Driver { get; set; }
public UserInfo User { get; set; }
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("ExistingUserTest");
public ExistingUserTestSuite(string browser)
{
this.browser = browser;
}
[OneTimeSetUp]
public void SetUp()
{
switch (browser)
{
case "chrome":
Driver = new ChromeDriver();
break;
case "firefox":
FirefoxOptions op1 = new FirefoxOptions();
op1.IsMarionette = true;
op1.AddAdditionalCapability("marionette", true);
Driver = new FirefoxDriver(op1);
break;
当我尝试 运行 时,出现以下异常。当我开始测试时,我可以在进程资源管理器中看到 wire.exe 进程正在 运行ning。
Test Name: ChangePlan
Test FullName: POMAuctivaTest.TestSuite.ExistingUserTestSuite("firefox").ChangePlan
Test Source: c:\git\POMAuctivaTest\POMAuctivaTest.TestSuite\ExistingUserTestSuite.cs : line 359
Test Outcome: Failed
Test Duration: 0:00:00.0000001
Result Message: OneTimeSetUp: System.InvalidOperationException : entity not found
这是生成异常的堆栈跟踪
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxDriverService service, FirefoxOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxOptions options)
at POMAuctivaTest.TestSuite.ExistingUserTestSuite.SetUp() in c:\git\POMAuctivaTest\POMAuctivaTest.TestSuite\ExistingUserTestSuite.cs:line 56
我看到的大多数建议都是关于确保您的系统路径已更新。我觉得这里不是这种情况,因为如果我从我的 test/bin/debug 文件夹中删除 wire.exe 我得到以下异常。
Test Name: ChangePlan
Test FullName: POMAuctivaTest.TestSuite.ExistingUserTestSuite("firefox").ChangePlan
Test Source: c:\git\POMAuctivaTest\POMAuctivaTest.TestSuite\ExistingUserTestSuite.cs : line 359
Test Outcome: Failed
Test Duration: 0:00:00.0000001
Result Message: OneTimeSetUp: OpenQA.Selenium.DriverServiceNotFoundException : The wires.exe file does not exist in the current directory or in a directory on the PATH environment variable. The driver can be downloaded at https://github.com/jgraham/wires/releases.
这告诉我正在寻找驱动程序,但由于某种原因无法创建 FirefoxDriver()
的实例。
不确定在这里做什么,任何帮助都会很好。
在经历了一场徒劳的追捕之后,我在 geckodriver github 页面上的一个未决问题中发现了这个小 gem。我已经确认这已经解决了我的问题,现在我可以创建一个 firefox 驱动程序实例并成功打开 Firefox 47。https://github.com/mozilla/geckodriver/issues/91
这是上面 URL 的代码片段,以防 link 死机
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
IWebDriver driver = new FirefoxDriver(service);
希望这对其他人有帮助。但是有一个错误目前是我所有测试的阻塞问题。我的所有测试都访问我们的内部测试环境,这些环境具有自签名证书,并且存在 marionette 的错误,您无法处理这些错误。
https://bugzilla.mozilla.org/show_bug.cgi?id=1103196
=(
好吧,你们中的许多 webdriver 测试人员都知道 Firefox 47 的发布已经破坏了 Webdriver.FirefoxDriver。我能找到的所有文档都告诉我新的 FirefoxDriver 是 Marionette.
所以我已经从 https://github.com/mozilla/geckodriver/releases 下载了最新的可执行文件 重命名为 wires.exe 并移至我的测试目录。
这是我的设置方法
[TestFixture("chrome")]
[TestFixture("firefox")]
//[TestFixture("internet explorer")]
[Category("ExistingUser")]
public class ExistingUserTestSuite
{
public string browser;
public IWebDriver Driver { get; set; }
public UserInfo User { get; set; }
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("ExistingUserTest");
public ExistingUserTestSuite(string browser)
{
this.browser = browser;
}
[OneTimeSetUp]
public void SetUp()
{
switch (browser)
{
case "chrome":
Driver = new ChromeDriver();
break;
case "firefox":
FirefoxOptions op1 = new FirefoxOptions();
op1.IsMarionette = true;
op1.AddAdditionalCapability("marionette", true);
Driver = new FirefoxDriver(op1);
break;
当我尝试 运行 时,出现以下异常。当我开始测试时,我可以在进程资源管理器中看到 wire.exe 进程正在 运行ning。
Test Name: ChangePlan
Test FullName: POMAuctivaTest.TestSuite.ExistingUserTestSuite("firefox").ChangePlan
Test Source: c:\git\POMAuctivaTest\POMAuctivaTest.TestSuite\ExistingUserTestSuite.cs : line 359
Test Outcome: Failed
Test Duration: 0:00:00.0000001
Result Message: OneTimeSetUp: System.InvalidOperationException : entity not found
这是生成异常的堆栈跟踪
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxDriverService service, FirefoxOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxOptions options)
at POMAuctivaTest.TestSuite.ExistingUserTestSuite.SetUp() in c:\git\POMAuctivaTest\POMAuctivaTest.TestSuite\ExistingUserTestSuite.cs:line 56
我看到的大多数建议都是关于确保您的系统路径已更新。我觉得这里不是这种情况,因为如果我从我的 test/bin/debug 文件夹中删除 wire.exe 我得到以下异常。
Test Name: ChangePlan
Test FullName: POMAuctivaTest.TestSuite.ExistingUserTestSuite("firefox").ChangePlan
Test Source: c:\git\POMAuctivaTest\POMAuctivaTest.TestSuite\ExistingUserTestSuite.cs : line 359
Test Outcome: Failed
Test Duration: 0:00:00.0000001
Result Message: OneTimeSetUp: OpenQA.Selenium.DriverServiceNotFoundException : The wires.exe file does not exist in the current directory or in a directory on the PATH environment variable. The driver can be downloaded at https://github.com/jgraham/wires/releases.
这告诉我正在寻找驱动程序,但由于某种原因无法创建 FirefoxDriver()
的实例。
不确定在这里做什么,任何帮助都会很好。
在经历了一场徒劳的追捕之后,我在 geckodriver github 页面上的一个未决问题中发现了这个小 gem。我已经确认这已经解决了我的问题,现在我可以创建一个 firefox 驱动程序实例并成功打开 Firefox 47。https://github.com/mozilla/geckodriver/issues/91
这是上面 URL 的代码片段,以防 link 死机
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
IWebDriver driver = new FirefoxDriver(service);
希望这对其他人有帮助。但是有一个错误目前是我所有测试的阻塞问题。我的所有测试都访问我们的内部测试环境,这些环境具有自签名证书,并且存在 marionette 的错误,您无法处理这些错误。 https://bugzilla.mozilla.org/show_bug.cgi?id=1103196
=(