首页 > 解决方案 > Selenium、C#、Chrome 和 Firefox 都不会启动自动脚本,但 IE 会(添加脚本)

问题描述

我在 Visual Studio 中运行以下脚本作为测试项目。我遇到的问题是 Chrome 没有运行脚本,因为它超时。使用 Firefox 时会遇到相同的行为;但是,该脚本在 Internet Explorer 中成功运行。如果他们遇到这个问题,任何人都可以提供帮助吗?我已经更新到最新的 webdrivers,更新到最新版本的 VS,甚至卸载并重新安装了 VS,但我没有好运。Chrome 和 Firefox 浏览器打开,但它们保持空闲状态,最终我收到一条超时消息。我注意到它使 chromedriver 和 geckodriver 在任务管理器中运行,我必须手动结束这些会话。

Visual Studio Pro 2017 Ver 15.8.7 .net Framework ver 4.7.02046 Selenium.Firefox.WebDriver ver 0.22.0 Selenium.WebDriver.ChromeDriver ver 2.43.0 Selenium.WebDriver.IEDriver ver 3.141.0

消息:初始化方法 {{ProjectName}} 抛出异常。OpenQA.Selenium.WebDriverException:对 URL http://localhost:xxxx/session的远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。---> System.Net.WebException:请求已中止:操作已超时。

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Support.UI;

namespace ChromeFF_Fix
{
[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        //IWebDriver driver = new ChromeDriver(@"C:\Users\martigi\Downloads");
        //IWebDriver driver = new FirefoxDriver(@"C:\Users\martigi\Downloads");
        //IWebDriver driver = new ChromeDriver();
        IWebDriver driver = new FirefoxDriver();
        //IWebDriver driver = new InternetExplorerDriver();
        driver.Navigate().GoToUrl("https://google.com");
        driver.Quit();
    }

}
}

标签: c#seleniumselenium-webdriverselenium-chromedriverselenium-firefoxdriver

解决方案


我在使用 Firefox 时遇到了完全相同的问题(我不使用 Chrome 进行测试)。当我尝试调试它时,我注意到它的代码在调用 FirefoxDriver 构造函数后更新到该行。

我的解决方案是下载最新的 Gecko 驱动程序,目前是 v0.23.0 - https://github.com/mozilla/geckodriver/releases/tag/v0.23.0


推荐阅读