我刚刚开始将C#与Selenium和XUnit一起使用。我只有这个简单的代码来打开一个URL,但它总是失败。这是我的代码:
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using Xunit;
namespace LearningCSharp
{
public class FirstTest : IDisposable
{
IWebDriver driver = new ChromeDriver();
[Fact]
public void ChromeMethod()
{
driver.Navigate().GoToUrl("www.google.com");
driver.Manage().Window.Maximize();
}
public void Dispose()
{
try
{
driver.Quit();
}
catch (Exception e)
{
Console.WriteLine("Exception while stopping Chrome..." + e);
}
}
}
}
我在终端中执行以下命令:
dotnet test
Chrome浏览器会正常打开,但会立即关闭,而不会访问要求的URL。然后我在使用GoToUrl((的行中得到以下堆栈跟踪:
[xUnit.net 00:00:01.49]
LearningCSharp.FirstTest.ChromeMethod [FAIL]
X LearningCSharp.FirstTest.ChromeMethod [989ms]
Error Message: OpenQA.Selenium.WebDriverException : invalid argument (Session info: chrome=78.0.3904.97)
Stack Trace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary 2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.set_Url(String value)
at OpenQA.Selenium.Remote.RemoteNavigator.GoToUrl(String url)
我使用的是MAC操作系统10.14。Chrome版本78。Visual Studio社区2019。以下是我通过nuget使用的软件包:包装
知道为什么会出错吗?非常感谢。
您的URL无效。在www
之前添加https://
。这应该能解决问题。
根据WebDriver规范:
如果url不是绝对url,或者不是带有片段的绝对url,或不是本地方案,则返回错误,错误代码为无效参数。