我正在考虑使用 c#/Selenium 而不是 JavaScript/Selenium。我在使用 Webdriver-manager 和 chromedriver 时遇到问题。
Chromedriver 适用于 v88(Chrome 浏览器也是 v88),但是当我运行测试时,它失败并显示 ..
message: System.InvalidOperationException : session not created: This version of ChromeDriver only supports Chrome version 85 (SessionNotCreated)
我尝试在命令提示符下使用旧的 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();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我建议您不要使用 JS 的方法,而是采用 C# 包管理来处理驱动程序,因为您现在正在使用 C#。
假设您使用的是 Chrome 版本 88: https://www.nuget.org/packages/Selenium.WebDriver.ChromeDriver/88.0.4324.9600
将该依赖项添加到您的项目中,在恢复/构建时,它将把 ChromeDriver.exe 添加到您的 bin 目录中。在不指定路径的情况下调用新的 Chromedriver 将使用设置的系统属性,或者在项目的 bin 目录中查找 chromedriver.exe,从而使此方法成为处理驱动程序管理的更流畅的方式。
| 归档时间: |
|
| 查看次数: |
13434 次 |
| 最近记录: |