gpt4 book ai didi

c# - Webdriver 管理器和 c#

转载 作者:行者123 更新时间:2023-12-05 02:02:20 26 4
gpt4 key购买 nike

我正在考虑使用 c#/Selenium 而不是 JavaScript/Selenium。我在使用 Webdriver-manager 和 chromedriver 时遇到问题。

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

消息:System.InvalidOperationException:未创建 session :此版本的 ChromeDriver 仅支持 Chrome 版本 85 (SessionNotCreated)

我尝试在命令提示符 webdriver-manager update 后使用旧的 JS/Selenium 技术,然后是 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();

}


}

最佳答案

与其使用 JS 的方法,我建议您采用 C# 包管理来处理您的驱动程序,因为您现在正在使用 C#。

假设您使用的是 Chrome 版本 88: https://www.nuget.org/packages/Selenium.WebDriver.ChromeDriver/88.0.4324.9600

将该依赖项添加到您的项目中,在恢复/构建时它会将 ChromeDriver.exe 添加到您的 bin 目录中。在不指定路径的情况下调用新的 Chromedriver 将使用设置的系统属性,或者将在项目的 bin 目录中查找 chromedriver.exe,从而使此方法成为处理驱动程序管理的更流畅的方式。

关于c# - Webdriver 管理器和 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65849716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com