Selenium Webdriver打开Firefox然后死掉

时间:2016-08-30 23:58:08

标签: c# visual-studio selenium selenium-webdriver automated-tests

我有一个超级简单的测试脚本(下面)来开始使用WebDriver。当我运行测试(C# - Visual Studio 2015)时,它会打开一个Firefox浏览器然后什么都不做。

有几篇帖子谈到了以下问题,我也得到了:

  

OpenQA.Selenium.WebDriverException:无法在45000毫秒内启动套接字。尝试连接到以下地址:127.0.0.1:7055。

但关于这个问题的那些帖子已经很老了,也有一个主要区别 - 他们的FF浏览器没有打开;我的确如此。

错误: enter image description here

代码:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace seleniumDemo
{
    [TestClass]
    public class UnitTest1
    {
        static IWebDriver driverFF;

        [AssemblyInitialize]
        public static void SetUp(TestContext context)
        {
            driverFF = new FirefoxDriver();
        }

        [TestMethod]
        public void TestFirefoxDriver()
        {
            driverFF.Navigate().GoToUrl("http://www.google.com");
            driverFF.FindElement(By.Id("lst-ib")).SendKeys("Selenium");
            driverFF.FindElement(By.Id("lst-ib")).SendKeys(Keys.Enter);
        }
    }
}

这个问题不同于被建议重复的问题,因为在这种情况下FireFox浏览器实际上是打开的。在其他问题中,根本没有回应。

3 个答案:

答案 0 :(得分:0)

它似乎与Selenium和Firefox版本不兼容有关。当我的机器上的selenium无法与firefox通信时,我也遇到了同样的错误。我将firefox升级到46.x并开始工作。

您可以在网上找到版本兼容性信息,也可以参考selenium changelog。

答案 1 :(得分:0)

使用MarrioneteDriver使用最新版本的Firefox。

下面是Java代码,你可以用C#编写(确保你的项目文件夹中的BrowserDriver文件夹下有geckodriver.exe)

System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"/BrowserDrivers/geckodriver.exe");
        DesiredCapabilities cap = DesiredCapabilities.firefox();
        cap.setCapability("marionette", true);
        WebDriver driver = new MarionetteDriver(cap);

答案 2 :(得分:0)

您可以从下面下载最新版本的MarrioneteDriver

https://github.com/mozilla/geckodriver/releases

你应该将Marionette可执行文件转换为Windows系统路径:

  

将Marionette可执行文件添加到您需要的Windows系统路径中   更新Path系统变量并将完整目录添加到   可执行文件。

     

要执行此操作,请右键单击“开始”菜单,然后选择“系统”。在   左侧面板单击高级系统设置,然后单击环境   “系统属性”窗口中的“变量”按钮。现在是唯一的一步   要做的是编辑Path系统变量并添加完整目录   你的geckodriver(在这之前你可能需要添加一个分号,   如果不存在的话)你很高兴。

然后只需创建您的驱动程序实例:

var driver = new FirefoxDriver(new FirefoxOptions());