Webdriver管理器和c#
我正在考虑使用c#/Selenium而不是JavaScript/Selenium。我与Webdriver manager和chromedriver有问题 Chromedriver适用于v88(Chrome浏览器也适用于v88),但当我运行测试时,它失败了Webdriver管理器和c#,c#,selenium,C#,Selenium,我正在考虑使用c#/Selenium而不是JavaScript/Selenium。我与Webdriver manager和chromedriver有问题 Chromedriver适用于v88(Chrome浏览器也适用于v88),但当我运行测试时,它失败了 消息:System.InvalidOperationException:未创建会话:此版本的ChromeDriver仅支持Chrome版本85(会话未创建) 我曾尝试在命令提示符下使用旧的JS/Selenium技术webdriver-manag
消息:System.InvalidOperationException:未创建会话:此版本的ChromeDriver仅支持Chrome版本85(会话未创建)
我曾尝试在命令提示符下使用旧的JS/Selenium技术webdriver-manager-update
,然后是webdriver-manager-start
,但仍然出现相同的错误
这里的代码-这是实验性的真实数据删除…我知道我错过了一些明显的…只是看不到我的JS墙
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using BAMCIS.Util.Concurrent;
using WebDriverManager.DriverConfigs.Impl;
namespace CFirstSharp
{
[TestFixture]
public class Chrome_test1
{
private IWebDriver driver;
public string homeURL;
[Test(Description = "Login to PMS")]
public void Login_is_on_home_page()
{
new WebDriverManager.DriverManager().SetUpDriver(new ChromeConfig());
ChromeDriver driver = new ChromeDriver();
homeURL = "https://<UL>/";
driver.Navigate().GoToUrl(homeURL);
WebDriverWait wait = new WebDriverWait(driver,
System.TimeSpan.FromSeconds(15));
IWebElement siteID;
siteID = driver.FindElement(By.XPath("//*[@id='winp_SiteID']"));
siteID.SendKeys("<siteID>");
IWebElement usrName;
usrName = driver.FindElement(By.XPath("//*[@id='winp_UserID']"));
usrName.SendKeys("<usrName>");
IWebElement usrPass;
usrPass = driver.FindElement(By.XPath("//*[@id='winp_Password']"));
usrPass.SendKeys("<usrPass>");
TimeUnit.SECONDS.Sleep(2);
IWebElement logOn;
logOn = driver.FindElement(By.XPath("//*[@id='btn_LogOn']"));
logOn.Click();
TimeUnit.SECONDS.Sleep(7);
//IWebElement element =
//driver.FindElement(By.XPath("//a[@href='/beta/login']"));
// Assert.AreEqual("Sign In", element.GetAttribute("text"));
}
[TearDown]
public void TearDownTest()
{
driver.Close();
}
[SetUp]
public void SetupTest()
{
homeURL = "https://<URL>/";
driver = new ChromeDriver();
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用NUnit.Framework;
使用OpenQA.Selenium;
使用OpenQA.Selenium.Chrome;
使用OpenQA.Selenium.Support.UI;
使用BAMCIS.Util.Concurrent;
使用WebDriverManager.DriverConfigs.Impl;
命名空间CFirstSharp
{
[测试夹具]
公共类Chrome_测试1
{
私人IWebDriver;
公共字符串homeURL;
[测试(Description=“登录到PMS”)]
公共无效登录在主页()上
{
新的WebDriverManager.DriverManager().SetUpDriver(新的ChromeConfig());
ChromeDriver驱动程序=新的ChromeDriver();
homeURL=“https:///”;
driver.Navigate().gotour(homeURL);
WebDriverWait wait=新的WebDriverWait(驱动程序,
系统时间跨度(从秒(15));
IWebElement站点ID;
siteID=driver.FindElement(By.XPath(“/*[@id='winp\u siteID']);
siteID.SendKeys(“”);
我是乌斯纳姆;
usrName=driver.FindElement(By.XPath(“/*[@id='winp\u UserID']);
usrName.SendKeys(“”);
IWebElement usrPass;
usrPass=driver.FindElement(By.XPath(“/*[@id='winp\u Password']);
usrPass.SendKeys(“”);
时间单位。秒。睡眠(2);
IWebElement登录;
logOn=driver.FindElement(By.XPath(“/*[@id='btn\u logOn']);
登录。单击();
时间单位。秒。睡眠(7);
//IWebElement元素=
//driver.FindElement(By.XPath(“//a[@href='/beta/login']);
//Assert.AreEqual(“登录”,element.GetAttribute(“文本”);
}
[撕裂]
公共无效删除测试()
{
driver.Close();
}
[设置]
公共测试()
{
homeURL=“https:///”;
驱动程序=新的ChromeDriver();
}
}
我建议您采用C#package management来处理您的驱动程序,而不是使用JS的方法,因为您现在正在使用C#
假设您使用的是Chrome版本88:
将该依赖项添加到您的项目中,在恢复/构建时,它会将ChromeDriver.exe添加到您的bin目录中。
在不指定路径的情况下调用新的Chromedriver将使用已设置的系统属性,或者将在项目的bin目录中查找Chromedriver.exe,使此方法成为处理驱动程序管理的更流畅的方法。如果从Windows命令行运行
where Chromedriver
,它会报告什么?Hi Greg.报告ChromeDriver已启动。D:\Projects\VS19>ChromeDriver启动ChromeDriver 87.0.4280.20(c99e81631faa0b2a448e658c0dbd8311fb04ddbd参考/分支头/4280@{355})在端口9515上,仅允许本地连接。请参阅https://chromedriver.chromium.org/security-considerations 获取有关保持ChromeDriver安全的建议。ChromeDriver已成功启动
@GregBurghardt^^完整启动消息。您需要在ChromeDriver所在的位置运行-您需要调用“”命令并将chromedriver作为参数传递。这将报告在Windows中找到chromedriver.exe的文件夹%PATH%
。