c# - 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();
}
}
}
解决方案
我在使用 Firefox 时遇到了完全相同的问题(我不使用 Chrome 进行测试)。当我尝试调试它时,我注意到它的代码在调用 FirefoxDriver 构造函数后更新到该行。
我的解决方案是下载最新的 Gecko 驱动程序,目前是 v0.23.0 - https://github.com/mozilla/geckodriver/releases/tag/v0.23.0。
推荐阅读
- sql - Oracle SQL in 子句 - 速度慢
- python - sqlalchemy 中的连接池是线程安全的吗?
- android - 运行 Appium 测试时再次显示可访问权限弹出窗口
- html - 将公共曲目从 SoundCloud 流式传输到自定义 html5 播放器,我做错了什么?
- memory - OpenCL 内存一致性
- python-3.x - 子图的 Matplotlib figsize 与常规图的 figsize 不匹配
- c++ - 无等待生产者和阻塞消费者的环形缓冲区
- java - 带有 RadioChoice 的 Wicket span 标签
- bash - 如何制作 bash 脚本来检查程序或库是否存在
- python - python新手,试图理解为什么会这样