Webdriver管理器和c#

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

我正在考虑使用c#/Selenium而不是JavaScript/Selenium。我与Webdriver manager和chromedriver有问题

Chromedriver适用于v88(Chrome浏览器也适用于v88),但当我运行测试时,它失败了

消息: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%