当前位置: 首页 > 知识库问答 >
问题:

硒网络驱动程序打开火狐,然后死亡

顾俊哲
2023-03-14

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

有几个帖子讨论了以下问题,我也得到了:

OpenQA. Selenium.在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浏览器实际上是打开的。在其他问题中,它根本没有回答。

共有3个答案

盛承
2023-03-14

您可以从以下位置下载最新版本的marrionetdriver

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

您应该将可执行文件木偶连接到Windows系统路径:

要将木偶可执行文件添加到Windows系统路径,需要更新path系统变量并将完整目录添加到可执行文件。

为此,右键单击开始菜单并选择系统。在左侧面板中单击高级系统设置,然后在系统属性窗口中单击环境变量按钮。现在剩下的唯一步骤是编辑Path系统变量,并将完整目录添加到gecko驱动程序中(如果还没有出现,在这样做之前可能需要添加分号),然后就可以开始了。

然后简单地创建您的驱动程序实例:

var driver = new FirefoxDriver(new FirefoxOptions());
曹育
2023-03-14

使用万豪驱动来使用最新版本的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);
柏修洁
2023-03-14

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

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

 类似资料:
  • 我正在使用Selenium 3.0和firefox 48自动化应用程序。但在firefox48中,自动选择下拉菜单不起作用。 同样的代码也适用于IE和chrome。 这是浏览器的问题还是我的代码的问题? 在此输入图像描述

  • 我查了一下,我怎么能默默地运行硒:在这里找到了下一个伟大的答案 我正在尝试让selenium正常运行,直到一些操作完成,然后在后台运行它。 有可能吗? 高级Oz中的thanx

  • 正在研究尝试理解显式等待的方法。 所以单选按钮被点击后,输入形式发生了变化,所以我把给它一个时间元素出现,否则会出错“元素不可见......”。所以我认为现在是理解显式等待的好时机,因为我需要等到元素出现。 但出现错误“Selenium::WebDriver::error::ElementNotVisibleError:Element当前不可见,因此可能无法与之交互”。为什么这段代码不等到元素出现

  • 我的目标是使用硒为Python自动在线账单支付。 使用以下代码使用 Web 驱动程序登录成功: 登录后,一个新的页面加载,我的下一步是点击一个链接。代码: 什么也没发生。没有导航到该法案 但仍然没有。我还应该尝试其他什么? 错误: Traceback(最近调用的最后一次):File"/home/队长/. PyCharmEdu30/config/划痕/scratch_1.py",第12行,在clic

  • 我有一个问题,上传文件到网络系统使用硒驱动程序。所以在我的页面上,我没有任何输入来设置文件路径,而且我在网络上找到的大多数解决方案都不适合我。我必须点击上传文件按钮,然后在窗口对话框中设置文件的路径。我找到了winforms SendKeys类中使用的方法: 它的工作,但只有当测试有完全控制的机器(如果没有-路径已发送到某处不对话)。这就是问题所在,因为我无法完全控制运行测试的机器。你知道不使用S

  • 下面是我为firefox浏览器初始化的selenium web驱动程序。 尽管我给出了隐式等待,但我没有等待元素。它会立即抛出not found异常。如果我放那么它工作正常,没有任何问题。但是把现在测试用例包含更多线程的任何地方。sleep比实际的测试用例代码低。有人能给我建议正确的方法吗?