C# で WebDriver (Selenium 2) を使用してブラウザ ウィンドウを最大化する方法はありますか?
29 に答える
driver.Manage().Window.Maximize();
これは IE と Firefox で機能します。クロムが機能しません。これについて ChromeDriver プロジェクトにバグが報告されています。
一方、クロムの回避策は、Joey V. と Coder323 が提案したものを実装することです。
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
IE および Firefox の場合:
driver.manage().window().maximize();
クロムの場合:
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
この機能を WebDriver に追加するには未解決の問題があり、こちらで追跡できます: http://code.google.com/p/selenium/issues/detail?id=174
JavascriptExector
回避策は、次のように使用することです。
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
テスト ステップ/シナリオ:
1. ブラウザーを開き、TestURL
に移動します
。 2. ブラウザーを最大化します。
C# (.NET) でブラウザーを最大化します。
driver.Manage().Window.Maximize();
Java でブラウザを最大化します。
driver.manage().window().maximize();
Java を使用する別の方法:
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenResolution = new Dimension((int)
toolkit.getScreenSize().getWidth(), (int)
toolkit.getScreenSize().getHeight());
driver.manage().window().setSize(screenResolution);
次のようなものを使用できます (C#):
driver.Manage().Window.Size = new Size(1024, 768);
Chrome ドライバーを使用している場合は、機能を設定できます
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
Window.Maximize()
コマンドを使うだけ
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
次のSeleniumJavaコードスニペットが機能しました。
driver.manage().window().setPosition(new Point(0,0));
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
Dimension dim = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight());
driver.manage().window().setSize(dim);
Java の場合:
driver.manage().window().maximize();
IE、Mozilla、Chrome で動作します
私は同じ問題を抱えていましたが、次のコードを使用して問題を解決できます。
driver.manage().window().fullscreen();
C# の場合:
driver.Manage().Window.Maximize();
Java の場合:
driver.manage().window().maximize();
using System.Windows.Forms;
using System.Drawing;
public static void MaximizeBrowser(this IE myBrowser)
{
myBrowser.SizeWindow(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
}
Jim のコードを使用しましたが、ブラウザーを最大化するために、WatiN と C# で使用するために少し変更を加えました。
WebDriver でSelenium エミュレーションを使用できます。
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
このソリューションを使用しました
OpenQA.Selenium.Chrome.ChromeOptions chromeoptions = new OpenQA.Selenium.Chrome.ChromeOptions();
chromeoptions.AddArgument("--start-maximized");
OpenQA.Selenium.Chrome.ChromeDriver chrome = new OpenQA.Selenium.Chrome.ChromeDriver(chromeoptions);
これがC#で私のために働いたものです、firefoxDriverはクラスに対してグローバルです:
使用法で:
using System.Drawing;
using System.Windows.Forms;
コード内:
this.firefoxDriver = new FirefoxDriver();
this.firefoxDriver.Manage().Window.Position = new Point(0, 0);
this.firefoxDriver.Manage().Window.Size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
Python でウィンドウを最大化するために使用できる関数 window_maximize() があります。そして、これが私がそれを使用している方法です.これが役立つことを願っています-
from selenium import selenium
sel = selenium('localhost', 4444, '*firefox', 'http://10.77.21.67/')
sel.start()
sel.open('/')
sel.wait_for_page_to_load(60000)
#sel.window_focus()
sel.window_maximize()
png = sel.capture_screenshot_to_string()
f = open('screenshot.png', 'wb')
f.write(png.decode('base64'))
f.close()
sel.stop()
C# クライアント ドライバー:
driver = new FirefoxDriver(firefoxProfile);
driver.Manage().Window.Size = new System.Drawing.Size(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width+10, System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height+10);
===> .NET アセンブリ "System.Windows.Forms" への参照も追加します
...唯一の問題は、正しく配置されていないこと
です...これを修正できる場合はコメントしてください
これは私にとってはうまくいきます。
Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)
上記の多くの回答を試しましたが、どれもうまくいきません。私のchromeドライバーのバージョンは2.7で、selenium-javaのバージョンは2.9.0です。公式ドキュメントでは、次の使用が提案されています。
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
上記も動作しません。Chrome ドライバーを確認しましたJsonWireProtocol
:
http://code.google.com/p/selenium/wiki/JsonWireProtocol
クロム ダイバー プロトコルは、ウィンドウを最大化する方法を提供します。
/session/:sessionId/window/:windowHandle/maximize,
ただし、このコマンドは selenium-java では使用されません。これは、自分でコマンドを chrome に送信することも意味します。これを行うと、動作します。
以下のコードを使用して、ウィンドウを最大化できます。
((JavascriptExecutor) driver).executeScript("if(window.screen){
window.moveTo(0, 0);
window.resizeTo(window.screen.availWidth, window.screen.availHeight);
};");
Chrome ドライバーは既にサポートしています:
ジャワ:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();