I try several hours to do Unit Testing with a Selenium driver for a custom website. The problem is that my first test case is always expecting. I did not write anything else. I tried several different tutorials but no one works. What I've done:
- Install Selenium WebDriver through the NuGet console (specify the link);
- Install Selenium WebDriver.Support via NuGet (have a link);
- I even turned off the firewall;
Finally, I follow the manual on this page dotnet-developer.de ! The tutorial also does not work. It is defined in vb.net, but I translated it into C # as follows:
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace FastMenuSeleniumTests
{
[TestClass]
public class UnitTest1
{
public IWebDriver driver;
const string BaseURL = "http://www.bing.com";
public UnitTest1()
{
}
private TestContext testContextInstance;
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
[TestInitialize()]
public void TestInitialization()
{
driver = new FirefoxDriver();
}
[TestCleanup()]
public void TestCleanup()
{
driver.Quit();
}
#endregion
[TestMethod]
public void TestMethod1()
{
IWebElement SearchBox = default(IWebElement);
IWebElement FirstResult = default(IWebElement);
driver.Navigate().GoToUrl(BaseURL);
SearchBox = GetWebElement(driver, By.Id("sb_form_q"), 10);
SearchBox.SendKeys("dotnet-developer.de");
SearchBox.SendKeys(Keys.Enter);
FirstResult = GetWebElement(driver, By.XPath("//ul[@class='sb_results']/li/div/div/div/h3/a"), 10);
string ExpectedText = "dotnet-developer.de | Tips for vb.net,…";
Assert.AreEqual(ExpectedText, FirstResult.Text, "Subject is not correct");
string ExpectedURL = "http://www.dotnet-developer.de/";
Assert.AreEqual(ExpectedURL, FirstResult.GetAttribute("href"), "URL is not correct!");
}
private IWebElement GetWebElement(OpenQA.Selenium.By definition)
{
const int DefaultTimeout = 10;
return GetWebElement(definition, DefaultTimeout);
}
private IWebElement GetWebElement(OpenQA.Selenium.By definition, int timeoutSeconds)
{
return GetWebElement(driver, definition, timeoutSeconds);
}
private IWebElement GetWebElement(IWebDriver webDriver, OpenQA.Selenium.By definition, int seconds)
{
WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(seconds));
wait.Until(d => { return d.FindElement(definition).Enabled & d.FindElement(definition).Displayed; });
return webDriver.FindElement(definition);
}
}
}
source
share