【问题标题】:Error CS0246: The type or namespace name 'WebDriverWait' could not be found?错误 CS0246:找不到类型或命名空间名称“WebDriverWait”?
【发布时间】:2018-07-28 14:16:22
【问题描述】:

我是使用 selenium 和 C# 在 Visual Studio 中创建测试的新手。我有两个文件,一个是搜索引擎主页面,另一个是测试文件。文件可以在这里找到---https://www.automatetheplanet.com/page-object-pattern/

我总是收到这个错误; 下面是问题的截图。

错误 CS0246:找不到类型或命名空间名称“WebDriverWait”?

我做错了什么??

下面是以下代码-

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

[TestClass]
public class SearchEngineTests
{
    public IWebDriver Driver { get; set; }
    public WebDriverWait Wait { get; set; }

    [TestInitialize]
    public void SetupTest()
    {
        this.Driver = new FirefoxDriver();
        this.Wait = new WebDriverWait(this.Driver, TimeSpan.FromSeconds(30));
    }

    [TestCleanup]
    public void TeardownTest()
    {
        this.Driver.Quit();
    }

    [TestMethod]
    public void SearchTextInSearchEngine_First()
    {
        SearchEngineMainPage searchEngineMainPage = new SearchEngineMainPage(this.Driver);
        searchEngineMainPage.Navigate();
        searchEngineMainPage.Search("Automate The Planet");
        searchEngineMainPage.ValidateResultsCount("264,000 RESULTS");
    }
}

这是第二个文件-

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;

public class SearchEngineMainPage
{
    private readonly IWebDriver driver;
    private readonly string url = @"searchEngineUrl";

    public SearchEngineMainPage(IWebDriver browser)
    {
        this.driver = browser;
        PageFactory.InitElements(browser, this);
    }

    [FindsBy(How = How.Id, Using = "sb_form_q")]
    public IWebElement SearchBox { get; set; }

    [FindsBy(How = How.Id, Using = "sb_form_go")]
    public IWebElement GoButton { get; set; }

    [FindsBy(How = How.Id, Using = "b_tween")]
    public IWebElement ResultsCountDiv { get; set; }

    public void Navigate()
    {
        this.driver.Navigate().GoToUrl(this.url);
    }

    public void Search(string textToType)
    {
        this.SearchBox.Clear();
        this.SearchBox.SendKeys(textToType);
        this.GoButton.Click();
    }

    public void ValidateResultsCount(string expectedCount)
    {
        Assert.IsTrue(this.ResultsCountDiv.Text.Contains(expectedCount), "The results DIV doesn't contains the specified text.");
    }
}

而且还出现以下错误

  1. 错误 CS1729:“SearchEngineMainPage”不包含采用 1 个参数的构造函数 (CS1729) (testingProgram)

  2. 错误 CS0103:名称“TimeSpan”在当前上下文中不存在 (CS0103) (testingProgram)

【问题讨论】:

标签: c# visual-studio selenium selenium-webdriver automated-tests


【解决方案1】:

#1:WebDriverWait 在 Selenium.Support 包中可用。所以,请在SearchEngineTestsTest 类中导入以下包。

using OpenQA.Selenium.Support.UI;

#2:TimeSpan 在默认的System 命名空间中可用。所以,请同时添加以下命名空间

using System

关于添加所需的命名空间,如果您在程序中看到任何带有红色下划线的代码,请将光标移至该特定字段。它将给出添加相关命名空间的建议

#3: 关于SearchEngineMainPage 构造函数错误。请在 SearchEngineMainPage 类中添加构造函数,并将 agument 作为驱动程序。看起来,您已经有了参数构造函数。您是否仍然收到此错误?

【讨论】:

  • 错误 CS1729:“SearchEngineMainPage”不包含采用 1 个参数的构造函数 (CS1729) (testingProgram)
  • 错误 CS0103:名称“TimeSpan”在当前上下文中不存在 (CS0103) (testingProgram)
  • @Novice_29:请检查编辑后的答案。如果此答案有帮助,请点击勾选箭头接受答案,并点击向上箭头按钮投赞成票
【解决方案2】:

认为您缺少命名空间using OpenQA.Selenium.Support.UI;

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 2019-09-14
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多