我的第一个Selenium项目。
在VS2019中使用nuget安装了Selenium Web驱动程序3.141从这里下载并执行Chrome WebDriver获取ChromeDriver已成功启动的消息。
我已经尝试了许多不同的样本代码,例如
[Test(Description = "Check SauceLabs Homepage for Login Link")]
public void Login_is_on_home_page()
{
homeURL = "https://www.SauceLabs.com";
driver.Navigate().GoToUrl(homeURL);
WebDriverWait wait = new WebDriverWait(driver,System.TimeSpan.FromSeconds(15));
wait.Until(driver => driver.FindElement(By.XPath("//a[@href='/beta/login']")));
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 = "http://SauceLabs.com";
driver = new ChromeDriver();
}
我禁用了防火墙和防病毒软件。
我得到了一个带有的新Chrome窗口
data:,
在地址栏和Chrome is being controlled by automated test software
中
过了一段时间,测试崩溃,出现错误:
Test Name: Login_is_on_home_page
Test FullName: HelperTest.HelperTest.Chrome_Sample_test.Login_is_on_home_page
Test Source: C:srcreposHelperHelperTestClass1.cs : line 25
Test Outcome: Failed
Test Duration: 0:00:00
Test Name: Login_is_on_home_page
Test Outcome: Failed
Result StackTrace:
at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor()
at HelperTest.Chrome_Sample_test.SetupTest() in C:srcreposHelperHelperTestClass1.cs:line 51
--WebException
at System.Net.HttpWebRequest.GetResponse()
at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
--TearDown
at HelperTest.Chrome_Sample_test.TearDownTest() in C:srcreposHelperHelperTestClass1.cs:line 43
Result Message:
OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:56519/session timed out after 60 seconds.
----> System.Net.WebException : The operation has timed out
TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
我完全不知道该做什么——有人能帮忙吗?
有一些东西需要验证和实验,可以帮助解决问题:
- 检查驱动程序兼容性。升级测试项目中的NuGet包,并检查Chrome驱动程序NuGet包是否与代理上的驱动程序版本匹配(您可以在代理池详细信息中查看(
- 您可以尝试以不同的方式创建Chrome驱动程序,并为其指定超时,并增加页面加载超时
- 此外,请查看是否有缓存的DLL,并尝试以管理员身份运行VS2019