web-dev-qa-db-ja.com

C#を使用してSelenium WebDriver(Selenium 2)のブラウザーウィンドウを最大化する方法は?

C#でWebDriver(Selenium 2)を使用してブラウザーウィンドウを最大化する方法はありますか?

117
Reflux

この機能を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);");
}
36
Dave Hunt

driver.Manage().Window.Maximize();

これは、IEおよびFirefoxで機能します。 Chromeは機能しません。 ChromeDriverプロジェクトで、このために提出されたバグがあります。

一方、chromeの回避策は、Joey V.とCoder323が提案したものを実装することです。

ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
149
bipinkarms

IEおよびFirefoxの場合:

driver.manage().window().maximize();

Chromeの場合:

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
35
Luis

Java

driver.manage().window().maximize();

Python

driver.maximize_window()

Ruby

@driver.manage.window.maximize

OR

max_width, max_height = driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)

OR

target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
24
Prashanth Sams

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);
15
Ripon Al Wasim

次のようなものを使用できます(C#):

driver.Manage().Window.Size = new Size(1024, 768);
15
DrunkCoder

Chromeドライバーを使用している場合、機能を設定できます

    var capabilities = new DesiredCapabilities();

    var switches = new List<string>
                       {
                           "--start-maximized"
                       };

    capabilities.SetCapability("chrome.switches", switches);

    new ChromeDriver(chromedriver_path, capabilities);
8
Joey V.

次のSelenium Javaコードスニペットが機能しました。

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);
6
KrishPrabakar

Window.Maximize()コマンドを使用するだけです

WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();  
6
iamsankalp89

Javaの場合:

driver.manage().window().maximize();

IE、Mozilla、Chromeで動作します

5
Ramaguru N

C#の場合:

driver.Manage().Window.Maximize();

Javaの場合:

driver.manage().window().maximize();
4

新しいドライバーライブラリのバグが確認されています。新しいブラウザバージョンを処理できる少し古いjarを使用できます。

主な汎用オプションは次のとおりです。

driver.manage().window().maximize();

ブラウザウィンドウを最大化するために他のオプションを使用することもできます。

例:-

以下のオプションを追加して、ドライバーに渡します。

    chromeOptions.addArguments("--start-maximized");

完全なコードは次のようになります。

System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);

OR

Toolkit toolkit = Toolkit.getDefaultToolkit();
int Width = (int) toolkit.getScreenSize().getWidth();
int Height = (int)toolkit.getScreenSize().getHeight();
//For Dimension class, Import following library "org.openqa.Selenium.Dimension"  
driver.manage().window().setSize(new Dimension(Width,Height));
driver.get("https://google.com");

サファリでこれを試してください:-

JavascriptExecutor jse = (JavascriptExecutor)driver;
String screenWidth = jse.executeScript("return screen.availWidth").toString();
String screenHeight = jse.executeScript("return screen.availHeight").toString();
int intScreenWidth = Integer.parseInt(screenWidth);
int intScreenHeight = Integer.parseInt(screenHeight);
Dimension d = new Dimension(intScreenWidth, intScreenHeight);
driver.manage.window.setSize(d);
4
Shubham Jain
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#で使用するためにわずかに変更して、ブラウザーを最大化しました。

3
ParkerSuperstar

WebDriverで Selenium Emulation を使用できます。

Selenium = new WebDriverBackedSelenium(driver,url);
Selenium.windowMaximize();
2
Sergii Pozharov

以下のコード行は、IE、ChromeおよびMozillaを最大化します

driver.manage().window().maximize();

ポストで言及された上記のコード行およびその他の回避策はNodeWebKitブラウザーでは機能しなかったため、回避策として、以下で説明するネイティブC#コードを使用する必要がありました。

public static void MaximiseNWKBrowser(IWebDriver d)
        {
            var body = UICommon.GetElement(By.TagName("body"), d);
            body.Click();
            string alt = "%";
            string space = " ";
            string down = "{DOWN}";
            string enter = "{ENTER}";
            SendKeys.SendWait(alt + space);
            for(var i = 1; i <= 6; i++)
            {
                SendKeys.SendWait(down);
            }
            SendKeys.SendWait(enter);            
        }

したがって、この回避策は基本的に「ALT + SPACE」を使用してブラウザのアクションメニューを表示し、オプションから「MAXIMIZE」を選択して「ENTER」を押します。

1
spartan

私は同じ問題を抱えていましたが、次のコードを使用して問題を解決できます。

driver.manage().window().fullscreen();
1
skarki

Window_maximize()であるPythonのウィンドウを最大化するために使用できる関数があります。これが私がそれを使用している方法です。これが役立つことを願っています-

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()
1
fixxxer

Webdriverjs(node.js)の場合、以下はchromeウィンドウを最大化します。

var webdriver = require('Selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).build();
driver.manage().window().maximize();
driver.get('hxxp://localhost:8888');
1
Anup

私にとってこのオプションは大丈夫です:

ChromeOptions options = new ChromeOptions();
options.addArguments("start-fullscreen");

このオプションはすべてのOSで機能します。

1
Sagar007

このソリューションを使用しました

            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);
1
Coder323

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」への参照も追加します

...唯一の問題は、正しく配置されていないことです
...これを修正できる場合はコメントしてください

1
MacGyver

以下は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);
1
Jim Thompson

以下のコードを使用して、ウィンドウを最大化できますが、

((JavascriptExecutor) driver).executeScript("if(window.screen){
    window.moveTo(0, 0);
    window.resizeTo(window.screen.availWidth, window.screen.availHeight);
    };");
0
Rajagopal

私にとって、Selenium Web Driver C#+ Chromeを使用する場合、上記のソリューションはどれも機能しませんでした。

  • window.resizeTo(1024、768);-画面全体を使用したい
  • --start-maximized-無視されます
  • driver.manage()。window()。maximize();-何らかの拡張が必要であり、Chrome拡張機能

InputSimulator を使用して動作させることができました。

var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
0
Alexei

上記の回答の多くを試しましたが、どれもうまくいきません。 chromeドライバーバージョンは2.7で、Selenium-Javaバージョンを使用するIamは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

chrome diverプロトコルは、ウィンドウを最大化する方法を提供します。

/session/:sessionId/window/:windowHandle/maximize,

ただし、このコマンドはSelenium-Javaでは使用されません。これは、自分でchromeにもコマンドを送信することを意味します。これをやったらうまくいきます。

0
knight zhou

これは私にとってはうまく機能しています。

Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)
0
suresh.g

Chromeドライバーは既にサポートしています:

Java:

webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
0
Viktor Chmel