我试图在Visual Studio中使用Selenium驱动程序在C#中创建测试。我收到以下错误。错误CS0103:名称'TimeSpan'在当前上下文中不存在(CS0103)(testingProgram)?在提供的图像中还显示了第二个错误。该代码使用PageObjectPattern >> https://www.automatetheplanet.com/page-object-pattern/
顺便说一句,我正在使用Mac。我添加了一些图像以帮助更好地描述这种情况。下图显示了两个文件。有人可以试着跑过去看看它是否有效。
该如何解决?有人可以尝试运行该程序以查看其是否在运行?如何使该程序成功运行?
这是下面的代码-
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Support.UI;
[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";
[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.");
}
}
答案 0 :(得分:0)
好的,所以在两种情况下,错误消息都会告诉您确切缺少的内容。
首先,TimeSpan
在System
命名空间中,并且那里没有using System;
,因此编译器找不到它。
第二,SearchEngineMainPage
没有一个带有单个参数的构造函数(实际上它根本没有一个构造函数,因此编译器会为您生成一个,但是没有任何参数,因此还是不好)。