-
Notifications
You must be signed in to change notification settings - Fork 50
Golem.WebDriver, Getting Started
===== ###Guide Navigation
=====
###Selenium WebDriver C# Framework
Selenium WebDriver is collection of language specific bindings used to drive browser actions natively the way a real user would. Combined with the Golem’s Core functionality, you now have a powerful tool to create and execute robust, browser-based test automation scripts.
By default, the framework will automatically launch Firefox on your local browser before each test, and instantiates a WebDriver instance. The Config class or an App.Config file can be used to control which browsers are used during testing.
Golem includes a variety of features that can globally enabled for every test. For example, having each WebDriver command written to the test log.
=====
###Creating a Test
Test classes are C# classes which contain test methods.
To write a test using Golem, create a test class that inherits WebDriverTestBase, and and mark test methods with the [Test] attribute. The WebDriverTestBase takes care of configuring the test case and managing the Selenium WebDriver and browser lifecycles. See "Configuring Tests" below.
An example test class looks like:
using MbUnit.Framework;
using OpenQA.Selenium;
namespace ProtoTest.Golem.Tests
{
class Test : WebDriverTestBase
{
[Test]
public void TestGoogle()
{
driver.Navigate.GoToUrl("http://www.google.com/");
var searchField = driver.findElement(By.Name("q"));
searchField.SendKeys("ProtoTest");
}
}
}In addition, the framework is built to support the page object design pattern. For an example of how to write a page object class, see the GoogleHomePage class within the Golem tests directory.
Here's an example of a test built on top of the GoogleHomePage class:
using MbUnit.Framework;
using ProtoTest.Golem.Tests.PageObjects.Google;
using ProtoTest.Golem.WebDriver;
namespace ProtoTest.Golem.Tests
{
class Test : WebDriverTestBase
{
[Test]
public void TestGoogle()
{
OpenPage<GoogleHomePage>("http://www.google.com/")
.SearchFor("Selenium")
.VerifyResult("Web Browser Automation");
}
}
}=====
- Add an "Application Configuration File"
- Edit the App.config -> Set browser using key “Browser1” value=”Firefox”
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="Browser1" value="Firefox"/>
</appSettings>
</configuration>
- Execute Test - Should open Firefox instead of Chrome
- Supports Firefox, Chrome, IE, Safari, HtmlUnit, and Android (remote only)
Any Config value can be set either in the App.Config file, or directly in code. This means you can override the global setting temporarily, and change it back later.
[FixtureInitializer]
public void init()
{
Config.Settings.httpProxy.startProxy = false;
Config.Settings.httpProxy.useProxy = false;
}
=====
- TestDriven.net plugin is required
- Right Click on Test > Run Test (Should open browser and close it)
- Right Click on Class or project to run all tests within
- Open Gallio Icarus
- Click "Add" and navigate to our ProjectName.dll file located in the /bin/release or /bin/debug/ directory
- Select tests to execute
- Click Run
####Executing on a Remote Computer:
- Modify App Config, set host to IP or Hostname of remote computer
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="Browser1" value="Chrome"/>
<add key="RunOnRemoteHost" value="True"/>
<add key="HostIp" value="10.10.1.151"/>
</appSettings>
</configuration>####Desired Capibilities
- Can be passed in as a single string via app.config. The format is : "key1=value1,key2=value2,..."
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="Browser1" value="Chrome"/>
<add key="Browser1Capibilities value="version=35,platform=Windows 8"/>
<add key="RunOnRemoteHost" value="True"/>
<add key="HostIp" value="10.10.1.151"/>
</appSettings>
</configuration>