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


回答:


39

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

13
2つのこと:1)何が表示されているかを気にする場合は、ウィンドウをフルスクリーンにする前に、ウィンドウを元の位置に移動する必要があります。2)画面のサイズが可変の場合、JavaScript screenオブジェクトを使用して実行時に取得できます。考慮JavaScriptをこれらの点を取ることは、おそらく次のようになりますwindow.moveTo(0,0); window.resizeTo(screen.width, screen.height);
Guildencrantz

4
Mac上のFirefoxでウィンドウを(0,0)に移動すると問題が発生することに注意してください。ヘッダー領域が適切に考慮されていないようです。ウィンドウを(0,1)に移動すると、実際には(0,0)に移動するように見えるため、あるバグが別のバグに役立ちます。その時点で、ウィンドウを適切に最大化できます。
nirvdrum 2010

JavascriptExecutorインスタンスである必要がありますIJavaScriptExecutor
TuGordoBello

159

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

これはIEとFirefoxで動作します。Chromeが機能しない。ChromeDriverプロジェクトでこれについて提出されたバグがあります。

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

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

1
このFirefoxの方法が動作する唯一の方法であり、JavaScriptはセレン2.21でまったく機能しません
サムアダムシュ

6
大文字と小文字を区別するJavaの場合=> driver.manage()。window()。maximize();
Janaaaa 2013

AttributeError: 'WebDriver' object has no attribute 'Manage'
ユーザー

上手。私は感謝します:)それは私のchromedriverで動作します。
Xin

Selenium WebDriver 3.3.0でFF53を使用しています。driver.Manage()。Window.Maximize(); 私のために働く
Ripon Al Wasim

36

IEおよびFirefoxの場合:

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

Chromeの場合:

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

4
C#こんな感じです。driver.Manage()。Window.Maximize();
Chris Hawkes

driver.manage()。window()。maximize(); クロームでも動作します
mosaad

C#には大文字のメソッドが必要です。これは。driver.Manage()。Window.Maximize();
LA Guy 88

35

ジャワ

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

パイソン

driver.maximize_window()

ルビー

@driver.manage.window.maximize

または

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

または

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

15

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

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

2
残念ながら、これはChromeDriverの例外です。IEとFirefoxでも正常に動作します。
ブライアン・オールド2012年

このコードをSelenium C#で使用すると、ChromeDriverがGoogleから提供されるようになったので(Selenium 3用ですが)、正常に機能するはずです。または、最大化関数を使用するか、オプションを使用して次の引数を追加することもできます。 "--start-maximized"
user1841243

15

テストステップ/シナリオ:
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);

これは、sun.awt.HeadlessToolkit.getScreenSize(HeadlessToolkit.java:284)でエラーjava.awt.HeadlessExceptionが発生してChrome Dockerコンテナの場合に失敗します。以前にこの問題に遭遇しましたか?
vikramvi 2016年

私はdriver.Manage()。Window.Maximize();で試しました。FF上のSelenium WebDriver C#で、それはうまくいきました。まだChromeを試していません。
Ripon Al Wasim

これは私にとってはうまくいきましたがdriver.manage().window().setPosition(new Point(0,0));、最後の行の前に追加する必要がありました。そうしないと、ウィンドウが正しい位置にありませんでした。
スワンヘラ2017年

swanhella:これを共有してくれてありがとう
Ripon Al Wasim

8

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

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);

7

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

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

6

次の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);

5

Javaの場合:

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

IE、Mozilla、Chromeで動作します


AndroidDriver()に同じように設定するにはどうすればよいですか。
Karthick、2014年

5

同じ問題がありましたが、次のコードを使用して問題を解決できます。

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


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

または

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

3
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#で使用するために少し変更しました。


2

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

selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();

1
C#バージョンのwebdriverにはSelenium Emulationがありません。少なくとも2.0a4ではまだです(ただし、新しいバージョンがリリースされたので、まだチェックアウトされていません)。ただし、上記のJavaScriptコードは適切に機能します。
還流

また、たとえば、iPhoneDriverもサポートしていません
Iulius Curt

残念ながら、WebDriverBackedSelenium.windowMaximize()は、Firefox 7またはChrome 14では動作しません(IE8では動作します)。背後ではwindow.resize()JavaScriptコマンドを発行しますが、これらのブラウザは両方ともそれを無視します。@ joey-vのソリューションはChromeで動作します。そして、ルークインマンセメラウはここに解決策を投稿しました
Andrew Newdigate、2011年

2

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

            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

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

1

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

これが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

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

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

このオプションは私にとっては問題ありません:

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

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


1

以下のコード行は、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」を押します。


0

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

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

0

これは私にとってはうまくいきます。

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

0

上記の答えの多くを試しましたが、どれもうまくいきません。私のChromeドライバーのバージョンは2.7で、selenium-java vesionを使用する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ドライバーを確認しましたJsonWireProtocolhttp : //code.google.com/p/selenium/wiki/JsonWireProtocol

Chromeダイバープロトコルは、ウィンドウを最大化する方法を提供します。

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

ただし、このコマンドはselenium-javaでは使用されません。つまり、コマンドを自分でChromeに送信することもできます。これを実行すると、うまくいきます。



0

私にとって、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

このコードを使用して、Chromeウィンドウを最大化できます。

ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");

WebDriver driver = new ChromeDriver(options);

コードのみの回答を提供することは許容されますが、コードの説明を提供し、問題に対処する理由を人々に理解してもらうことができれば、多くの場合、コミュニティにとってより有用です。多くの場合、フォローアップの質問の量が減り、新しい開発者が基本的な概念を理解するのに本当に役立ちます。これはここで特に重要であり、すでに27の回答があります。既存の回答からあなたのアプローチを際立たせているものを呼び出すことは価値があります。追加の詳細で質問を更新していただけませんか?
Jeremy Caney
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.