我有一个超级简单的测试脚本(下面)来开始使用WebDriver。当我运行测试(C# - Visual Studio 2015)时,它会打开一个Firefox浏览器然后什么都不做。
有几篇帖子谈到了以下问题,我也得到了:
OpenQA.Selenium.WebDriverException:无法在45000毫秒内启动套接字。尝试连接到以下地址:127.0.0.1:7055。
但关于这个问题的那些帖子已经很老了,也有一个主要区别 - 他们的FF浏览器没有打开;我的确如此。
代码:
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浏览器实际上是打开的。在其他问题中,根本没有回应。
答案 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());