Skip to content

Commit

Permalink
Implementing ITakesScreenshot in RemoteWebDriver base class instead o…
Browse files Browse the repository at this point in the history
…f subclasses
  • Loading branch information
jimevans committed Feb 25, 2014
1 parent 34a63e4 commit 133d113
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 84 deletions.
18 changes: 1 addition & 17 deletions dotnet/src/webdriver/Chrome/ChromeDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ namespace OpenQA.Selenium.Chrome
/// }
/// </code>
/// </example>
public class ChromeDriver : RemoteWebDriver, ITakesScreenshot
public class ChromeDriver : RemoteWebDriver
{
/// <summary>
/// Accept untrusted SSL Certificates
Expand Down Expand Up @@ -153,21 +153,5 @@ public override IFileDetector FileDetector
get { return base.FileDetector; }
set { }
}

#region ITakesScreenshot Members
/// <summary>
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
/// </summary>
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
public Screenshot GetScreenshot()
{
// Get the screenshot as base64.
Response screenshotResponse = this.Execute(DriverCommand.Screenshot, null);
string base64 = screenshotResponse.Value.ToString();

// ... and convert it.
return new Screenshot(base64);
}
#endregion
}
}
18 changes: 1 addition & 17 deletions dotnet/src/webdriver/Firefox/FirefoxDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ namespace OpenQA.Selenium.Firefox
/// }
/// </code>
/// </example>
public class FirefoxDriver : RemoteWebDriver, ITakesScreenshot
public class FirefoxDriver : RemoteWebDriver
{
#region Public members
/// <summary>
Expand Down Expand Up @@ -208,22 +208,6 @@ protected FirefoxProfile Profile
}
#endregion

#region ITakesScreenshot Members
/// <summary>
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
/// </summary>
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
public Screenshot GetScreenshot()
{
// Get the screenshot as base64.
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
string base64 = screenshotResponse.Value.ToString();

// ... and convert it.
return new Screenshot(base64);
}
#endregion

#region Support methods
/// <summary>
/// In derived classes, the <see cref="PrepareEnvironment"/> method prepares the environment for test execution.
Expand Down
18 changes: 1 addition & 17 deletions dotnet/src/webdriver/IE/InternetExplorerDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ namespace OpenQA.Selenium.IE
/// }
/// </code>
/// </example>
public class InternetExplorerDriver : RemoteWebDriver, ITakesScreenshot
public class InternetExplorerDriver : RemoteWebDriver
{
/// <summary>
/// Initializes a new instance of the InternetExplorerDriver class.
Expand Down Expand Up @@ -156,21 +156,5 @@ public override IFileDetector FileDetector
get { return base.FileDetector; }
set { }
}

#region ITakesScreenshot Members
/// <summary>
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
/// </summary>
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
public Screenshot GetScreenshot()
{
// Get the screenshot as base64.
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
string base64 = screenshotResponse.Value.ToString();

// ... and convert it.
return new Screenshot(base64);
}
#endregion
}
}
18 changes: 1 addition & 17 deletions dotnet/src/webdriver/PhantomJS/PhantomJSDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ namespace OpenQA.Selenium.PhantomJS
/// }
/// </code>
/// </example>
public class PhantomJSDriver : RemoteWebDriver, ITakesScreenshot
public class PhantomJSDriver : RemoteWebDriver
{
/// <summary>
/// Command name of the PhantomJS-specific command to execute native script in PhantomJS.
Expand Down Expand Up @@ -202,21 +202,5 @@ public object ExecutePhantomJS(string script, params object[] args)
{
return this.ExecuteScriptCommand(script, CommandExecutePhantomScript, args);
}

#region ITakesScreenshot Members
/// <summary>
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
/// </summary>
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
public Screenshot GetScreenshot()
{
// Get the screenshot as base64.
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
string base64 = screenshotResponse.Value.ToString();

// ... and convert it.
return new Screenshot(base64);
}
#endregion
}
}
18 changes: 17 additions & 1 deletion dotnet/src/webdriver/Remote/RemoteWebDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ namespace OpenQA.Selenium.Remote
/// }
/// </code>
/// </example>
public class RemoteWebDriver : IWebDriver, ISearchContext, IJavaScriptExecutor, IFindsById, IFindsByClassName, IFindsByLinkText, IFindsByName, IFindsByTagName, IFindsByXPath, IFindsByPartialLinkText, IFindsByCssSelector, IHasInputDevices, IHasCapabilities, IAllowsFileDetection
public class RemoteWebDriver : IWebDriver, ISearchContext, IJavaScriptExecutor, IFindsById, IFindsByClassName, IFindsByLinkText, IFindsByName, IFindsByTagName, IFindsByXPath, IFindsByPartialLinkText, IFindsByCssSelector, ITakesScreenshot, IHasInputDevices, IHasCapabilities, IAllowsFileDetection
{
/// <summary>
/// The default command timeout for HTTP requests in a RemoteWebDriver instance.
Expand Down Expand Up @@ -704,6 +704,22 @@ public ReadOnlyCollection<IWebElement> FindElementsByCssSelector(string cssSelec
}
#endregion

#region ITakesScreenshot Members
/// <summary>
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
/// </summary>
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
public Screenshot GetScreenshot()
{
// Get the screenshot as base64.
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
string base64 = screenshotResponse.Value.ToString();

// ... and convert it.
return new Screenshot(base64);
}
#endregion

#region IDisposable Members

/// <summary>
Expand Down
16 changes: 1 addition & 15 deletions dotnet/src/webdriver/Safari/SafariDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ namespace OpenQA.Selenium.Safari
/// }
/// </code>
/// </example>
public class SafariDriver : RemoteWebDriver, ITakesScreenshot
public class SafariDriver : RemoteWebDriver
{
/// <summary>
/// Initializes a new instance of the <see cref="SafariDriver"/> class.
Expand Down Expand Up @@ -97,19 +97,5 @@ public override IFileDetector FileDetector
get { return base.FileDetector; }
set { }
}

/// <summary>
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
/// </summary>
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
public Screenshot GetScreenshot()
{
// Get the screenshot as base64.
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
string base64 = screenshotResponse.Value.ToString();

// ... and convert it.
return new Screenshot(base64);
}
}
}

0 comments on commit 133d113

Please sign in to comment.