【发布时间】:2022-01-27 02:03:47
【问题描述】:
我已经尝试在firefox中运行selenium webdriver有一段时间了,我总是得到同样的错误:无法在http://localhost:******/上启动驱动程序服务“(数字正在改变不断地) 我有在 Chrome 中使用 selenium 的经验,但从未在 Firefox 上使用过。 我遵循了一个始终适用于我的 chrome-webdriver 的教程,可以在这里找到:https://medium.com/@tanveer.khan/dotnet-core-selenium-nunit-visual-studio-code-2d489ccb2089 我已经安装了 geckodriver.exe 并将其放置在多个地方(尝试了网上提出的一堆解决方案),例如 firefox 浏览器位置、项目位置等。 从这里:https://github.com/mozilla/geckodriver/releases 我已经安装了所有需要的软件包:dotnet add package ... 我从来没有选择过司机将在哪里导航,它似乎是自动完成的。 我只需要不做任何事情就能成功通过测试。
源代码:
using System;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System.IO;
using System.Net;
using System.Web;
using System.Globalization;
using System.Drawing.Imaging;
using OpenQA.Selenium.Firefox;
namespace DemoFox
{
class Program
{
IWebDriver driver;
[SetUp]
public void TestSetup()
{
System.Environment.SetEnvironmentVariable("geckodriver.exe",@"C:\Program Files\Mozilla Firefox");
driver= new FirefoxDriver();
driver.Navigate().GoToUrl("http://localhost:3001");
}
[Test]
public void FirefoxTest(){
Console.WriteLine("Hello firefox");
}
[TearDown]
public void TestTearDown(){
driver.Quit();
}
}
}
异常信息:
结果:失败 错误信息: OpenQA.Selenium.WebDriverException:无法在 http://localhost:58696/ 上启动驱动程序服务 TearDown : System.NullReferenceException : 对象引用未设置为对象的实例。 堆栈跟踪: 在 OpenQA.Selenium.DriverService.Start() 在 OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(命令 commandToExecute) 在 OpenQA.Selenium.WebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2 参数) 在 OpenQA.Selenium.WebDriver.StartSession(ICapabilities desiredCapabilities) 在 OpenQA.Selenium.WebDriver..ctor(ICommandExecutor 执行器,ICapabilities 能力) 在 OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxDriverService 服务,FirefoxOptions 选项,TimeSpan 命令超时) 在 OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxOptions 选项) 在 OpenQA.Selenium.Firefox.FirefoxDriver..ctor() 在 c:\Users\Lab\Desktop\FireFoxDemo\DemoFox\Program.cs:line 24 中的 DemoFox.Program.TestSetup() - 拆除 在 c:\Users\Lab\Desktop\FireFoxDemo\DemoFox\Program.cs:line 33 中的 DemoFox.Program.TestTearDown() 标准输出消息: 由于目标机器主动拒绝,无法建立连接。 [::ffff:127.0.0.1]:58696 (localhost:58696)
测试总数:1.通过:0.失败:1.跳过:0
【问题讨论】:
-
只是为了确保我理解你的问题:你为什么要使用端口?是为了掌握一个已经开放的进程?
-
我想连接到在我的计算机上本地运行的服务器。但对于第一部分,我只想将测试打印到控制台,但即使那里只有一行代码,它也会在设置阶段失败:driver= new FirefoxDriver();.
标签: selenium selenium-webdriver firefox