我不熟悉使用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.");
}
}
同时出现以下错误
错误CS1729:“ SearchEngineMainPage”不包含带有1个参数的构造函数(CS1729)(testingProgram)
错误CS0103:名称'TimeSpan'在当前上下文(CS0103)(testingProgram)中不存在
答案 0 :(得分:2)
#1: WebDriverWait
。因此,请在SearchEngineTests
测试类中导入以下软件包。
using OpenQA.Selenium.Support.UI;
#2: TimeSpan
在默认的System
名称空间中可用。因此,请同时添加以下名称空间
using System
关于添加所需的名称空间,如果在程序中看到带红色下划线的代码,则将光标移至该特定字段。它将建议添加相关的命名空间
#3:
关于SearchEngineMainPage
构造函数错误。请在带有引号作为驱动程序的SearchEngineMainPage类中添加构造函数。看起来,您已经有了参数构造函数。您是否仍然遇到此错误?
答案 1 :(得分:1)
认为您缺少命名空间using OpenQA.Selenium.Support.UI;