Skip to content

Commit 133d113

Browse files
committed
Implementing ITakesScreenshot in RemoteWebDriver base class instead of subclasses
1 parent 34a63e4 commit 133d113

File tree

6 files changed

+22
-84
lines changed

6 files changed

+22
-84
lines changed

dotnet/src/webdriver/Chrome/ChromeDriver.cs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ namespace OpenQA.Selenium.Chrome
5757
/// }
5858
/// </code>
5959
/// </example>
60-
public class ChromeDriver : RemoteWebDriver, ITakesScreenshot
60+
public class ChromeDriver : RemoteWebDriver
6161
{
6262
/// <summary>
6363
/// Accept untrusted SSL Certificates
@@ -153,21 +153,5 @@ public override IFileDetector FileDetector
153153
get { return base.FileDetector; }
154154
set { }
155155
}
156-
157-
#region ITakesScreenshot Members
158-
/// <summary>
159-
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
160-
/// </summary>
161-
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
162-
public Screenshot GetScreenshot()
163-
{
164-
// Get the screenshot as base64.
165-
Response screenshotResponse = this.Execute(DriverCommand.Screenshot, null);
166-
string base64 = screenshotResponse.Value.ToString();
167-
168-
// ... and convert it.
169-
return new Screenshot(base64);
170-
}
171-
#endregion
172156
}
173157
}

dotnet/src/webdriver/Firefox/FirefoxDriver.cs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ namespace OpenQA.Selenium.Firefox
7171
/// }
7272
/// </code>
7373
/// </example>
74-
public class FirefoxDriver : RemoteWebDriver, ITakesScreenshot
74+
public class FirefoxDriver : RemoteWebDriver
7575
{
7676
#region Public members
7777
/// <summary>
@@ -208,22 +208,6 @@ protected FirefoxProfile Profile
208208
}
209209
#endregion
210210

211-
#region ITakesScreenshot Members
212-
/// <summary>
213-
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
214-
/// </summary>
215-
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
216-
public Screenshot GetScreenshot()
217-
{
218-
// Get the screenshot as base64.
219-
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
220-
string base64 = screenshotResponse.Value.ToString();
221-
222-
// ... and convert it.
223-
return new Screenshot(base64);
224-
}
225-
#endregion
226-
227211
#region Support methods
228212
/// <summary>
229213
/// In derived classes, the <see cref="PrepareEnvironment"/> method prepares the environment for test execution.

dotnet/src/webdriver/IE/InternetExplorerDriver.cs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ namespace OpenQA.Selenium.IE
6565
/// }
6666
/// </code>
6767
/// </example>
68-
public class InternetExplorerDriver : RemoteWebDriver, ITakesScreenshot
68+
public class InternetExplorerDriver : RemoteWebDriver
6969
{
7070
/// <summary>
7171
/// Initializes a new instance of the InternetExplorerDriver class.
@@ -156,21 +156,5 @@ public override IFileDetector FileDetector
156156
get { return base.FileDetector; }
157157
set { }
158158
}
159-
160-
#region ITakesScreenshot Members
161-
/// <summary>
162-
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
163-
/// </summary>
164-
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
165-
public Screenshot GetScreenshot()
166-
{
167-
// Get the screenshot as base64.
168-
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
169-
string base64 = screenshotResponse.Value.ToString();
170-
171-
// ... and convert it.
172-
return new Screenshot(base64);
173-
}
174-
#endregion
175159
}
176160
}

dotnet/src/webdriver/PhantomJS/PhantomJSDriver.cs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ namespace OpenQA.Selenium.PhantomJS
6363
/// }
6464
/// </code>
6565
/// </example>
66-
public class PhantomJSDriver : RemoteWebDriver, ITakesScreenshot
66+
public class PhantomJSDriver : RemoteWebDriver
6767
{
6868
/// <summary>
6969
/// Command name of the PhantomJS-specific command to execute native script in PhantomJS.
@@ -202,21 +202,5 @@ public object ExecutePhantomJS(string script, params object[] args)
202202
{
203203
return this.ExecuteScriptCommand(script, CommandExecutePhantomScript, args);
204204
}
205-
206-
#region ITakesScreenshot Members
207-
/// <summary>
208-
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
209-
/// </summary>
210-
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
211-
public Screenshot GetScreenshot()
212-
{
213-
// Get the screenshot as base64.
214-
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
215-
string base64 = screenshotResponse.Value.ToString();
216-
217-
// ... and convert it.
218-
return new Screenshot(base64);
219-
}
220-
#endregion
221205
}
222206
}

dotnet/src/webdriver/Remote/RemoteWebDriver.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ namespace OpenQA.Selenium.Remote
6060
/// }
6161
/// </code>
6262
/// </example>
63-
public class RemoteWebDriver : IWebDriver, ISearchContext, IJavaScriptExecutor, IFindsById, IFindsByClassName, IFindsByLinkText, IFindsByName, IFindsByTagName, IFindsByXPath, IFindsByPartialLinkText, IFindsByCssSelector, IHasInputDevices, IHasCapabilities, IAllowsFileDetection
63+
public class RemoteWebDriver : IWebDriver, ISearchContext, IJavaScriptExecutor, IFindsById, IFindsByClassName, IFindsByLinkText, IFindsByName, IFindsByTagName, IFindsByXPath, IFindsByPartialLinkText, IFindsByCssSelector, ITakesScreenshot, IHasInputDevices, IHasCapabilities, IAllowsFileDetection
6464
{
6565
/// <summary>
6666
/// The default command timeout for HTTP requests in a RemoteWebDriver instance.
@@ -704,6 +704,22 @@ public ReadOnlyCollection<IWebElement> FindElementsByCssSelector(string cssSelec
704704
}
705705
#endregion
706706

707+
#region ITakesScreenshot Members
708+
/// <summary>
709+
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
710+
/// </summary>
711+
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
712+
public Screenshot GetScreenshot()
713+
{
714+
// Get the screenshot as base64.
715+
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
716+
string base64 = screenshotResponse.Value.ToString();
717+
718+
// ... and convert it.
719+
return new Screenshot(base64);
720+
}
721+
#endregion
722+
707723
#region IDisposable Members
708724

709725
/// <summary>

dotnet/src/webdriver/Safari/SafariDriver.cs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ namespace OpenQA.Selenium.Safari
6363
/// }
6464
/// </code>
6565
/// </example>
66-
public class SafariDriver : RemoteWebDriver, ITakesScreenshot
66+
public class SafariDriver : RemoteWebDriver
6767
{
6868
/// <summary>
6969
/// Initializes a new instance of the <see cref="SafariDriver"/> class.
@@ -97,19 +97,5 @@ public override IFileDetector FileDetector
9797
get { return base.FileDetector; }
9898
set { }
9999
}
100-
101-
/// <summary>
102-
/// Gets a <see cref="Screenshot"/> object representing the image of the page on the screen.
103-
/// </summary>
104-
/// <returns>A <see cref="Screenshot"/> object containing the image.</returns>
105-
public Screenshot GetScreenshot()
106-
{
107-
// Get the screenshot as base64.
108-
Response screenshotResponse = Execute(DriverCommand.Screenshot, null);
109-
string base64 = screenshotResponse.Value.ToString();
110-
111-
// ... and convert it.
112-
return new Screenshot(base64);
113-
}
114100
}
115101
}

0 commit comments

Comments
 (0)