c# - 运行 selenium 脚本时出现错误“OpenQA.Selenium.WebDriverException: invalid session id”
问题描述
下面是我的脚本,在运行我的脚本时通过,但我看到并非所有方法都已执行,并且控制台中有错误。
控制台错误:
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17134 x86_64)
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)
at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementById(String id)
at OpenQA.Selenium.By.<>c__DisplayClass16_0.<Id>b__0(ISearchContext context)
at OpenQA.Selenium.By.FindElement(ISearchContext context)
at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)
at Selenium_testing.SearchTCOData.SearchtCOData() in C:\Users\dvemula\source\repos\Selenium testing\Selenium testing\SearchTCOData.cs:line 23
at Selenium_testing.Login.Main(String[] args) in C:\Users\dvemula\source\repos\Selenium testing\Selenium testing\login.cs:line 24
代码:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Threading;
class LoginTCO
{
static IWebDriver driver = new ChromeDriver();
static void main()
{
driver.Navigate().GoToUrl("someurl");
Thread.Sleep(10000);
Click();
Console.WriteLine("clicked");
driver.Quit();
}
private static void Click()
{
driver.FindElement(By.CssSelector(".glyphicon-th-list")).Click();
driver.FindElement(By.CssSelector(".glyphicon-wrench")).Click();
driver.FindElement(By.CssSelector(".glyphicon-paste")).Click();
driver.FindElement(By.CssSelector(".idicon")).Click();
}
}
解决方案
出现此问题的原因有 2 个。
1) WebDriverManager 未使用并且以某种方式更新了 chromedriver.exe 二进制文件的情况,该二进制文件支持 chrome 浏览器版本 74,但操作系统的浏览器为 72。在这种情况下,您需要更新与浏览器版本兼容的二进制文件。
2) WebDriverManager 在使用时会自动下载浏览器二进制文件。它尝试下载可能与您的 chrome 浏览器安装版本不兼容的最新 chromedriver 二进制文件,比如说 72(我的猜测)。如果是这样,在这种情况下,我们必须下载与您的浏览器版本 72 兼容的 chromedriver 二进制文件。为此,请参考以下行来解决此问题。
推荐阅读
- reactjs - 从 API 动态更改 SVG 内的图像
- cryptography - 具有大小限制的固件中的加密数字签名
- angular - 无法将 ws 库添加到 Angular 项目
- matplotlib - matplotlib 刻度标签锚 - 右对齐刻度标签(在右侧轴上)并将刻度标签的左(西)侧“剪辑”到轴
- go - NATS Jetstream 是否通过密钥提供消息排序?
- java - 找不到 Number.isInteger 方法
- angular - 如何在 Angular 中使用 Karma-Jasmine 监视返回 observable 的方法?
- python - 也许是 python Instants 变量错误,TypeError: object is not iterable
- mysql - 使用 tableplus 连接 laravel 数据库
- regex - 正则表达式重定向帮助 - 更改子文件夹但保留路径的其余部分相同