运行C#Selenium测试时获取System.ArgumentException

运行C#Selenium测试时获取System.ArgumentException,c#,visual-studio,testing,selenium-webdriver,C#,Visual Studio,Testing,Selenium Webdriver,我正在学习如何用C#编写selenium测试,在尝试运行下面的测试用例时遇到了这个错误。它在以下方面失败:IWebElement query=driver.FindElement(By.Name(“q”)) 代码: 有什么想法吗?提前谢谢你 检查并确保您的ChromeDriver()版本与本地计算机上的版本匹配 下面是一个XUnit测试,它将使用NuGet软件包重新创建您的问题,在该软件包中,如果您的计算机上没有webdriver,您可以手动指定要下载的webdriver版本: [Fac

我正在学习如何用C#编写selenium测试,在尝试运行下面的测试用例时遇到了这个错误。它在以下方面失败:IWebElement query=driver.FindElement(By.Name(“q”))

代码:


有什么想法吗?提前谢谢你

检查并确保您的
ChromeDriver()
版本与本地计算机上的版本匹配

下面是一个XUnit测试,它将使用NuGet软件包重新创建您的问题,在该软件包中,如果您的计算机上没有webdriver,您可以手动指定要下载的webdriver版本:

    [Fact]
    public void ChromeDriverThrows_ArgumentException_True()
    {
        var google = "https://www.google.com/";
        var message = "elementDictionary (Parameter 'The specified 
                        dictionary does not contain an element 
                         reference')";

        // Specify a different of ChromeDriver than what is installed on machine.
        _ = new DriverManager().SetUpDriver(
                      "https://chromedriver.storage.googleapis.com/2.25/chromedriver_win32.zip",
                     Path.Combine(Directory.GetCurrentDirectory(), "chromedriver.exe"),
                      "chromedriver.exe"
                     );

        var driver = new ChromeDriver();

        driver.Navigate().GoToUrl(google);

        var exception = Assert.Throws<ArgumentException>(() => driver.FindElement(By.Name("q")));

        Assert.True(message == exception.Message, $"{exception.Message}");
    }

我已经写了相当多的硒测试,答案对我来说并不明显,但是,类似的,似乎是引发这个异常的原因。似乎与缺少的元素ID有关。不确定这是否有帮助,但确实有帮助。我个人会调试并逐步完成Selenium代码。
[TestMethod]
public void SearchForCheese()
{

    using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)))
    {
        driver.Navigate().GoToUrl("http://www.google.com");


        // Find text input
        IWebElement query = driver.FindElement(By.Name("q"));

        // Enter something to search for
        query.SendKeys("cheese");

        // Submit form
        query.Submit();

        var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
        wait.Until(d => d.Title.Contains("cheese"));

        Assert.AreEqual(driver.Title, "cheese - Google Search");
    };
}
    [Fact]
    public void ChromeDriverThrows_ArgumentException_True()
    {
        var google = "https://www.google.com/";
        var message = "elementDictionary (Parameter 'The specified 
                        dictionary does not contain an element 
                         reference')";

        // Specify a different of ChromeDriver than what is installed on machine.
        _ = new DriverManager().SetUpDriver(
                      "https://chromedriver.storage.googleapis.com/2.25/chromedriver_win32.zip",
                     Path.Combine(Directory.GetCurrentDirectory(), "chromedriver.exe"),
                      "chromedriver.exe"
                     );

        var driver = new ChromeDriver();

        driver.Navigate().GoToUrl(google);

        var exception = Assert.Throws<ArgumentException>(() => driver.FindElement(By.Name("q")));

        Assert.True(message == exception.Message, $"{exception.Message}");
    }
new DriverManager().SetUpDriver(new ChromeConfig(), VersionResolveStrategy.MatchingBrowser);