wake-up-neo.com

Wie maximiere ich das Browserfenster in Selenium WebDriver (Selenium 2) mit C #?

Gibt es eine Möglichkeit, das Browserfenster mithilfe von WebDriver (Selenium 2) mit C # zu maximieren?

111
Reflux

Es gibt noch ein Problem mit dem Hinzufügen dieser Funktionalität zu WebDriver, das hier verfolgt werden kann: http://code.google.com/p/Selenium/issues/detail?id=174

Um dieses Problem zu umgehen, verwenden Sie die Variable JavascriptExector wie folgt:

public void resizeTest() {
    driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
35
Dave Hunt

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

Dies funktioniert für IE und Firefox. Chrome funktioniert nicht. Für dieses ChromeDriver-Projekt wurde ein Fehler gemeldet.

In der Zwischenzeit besteht die Lösung für chrome darin, die Vorschläge von Joey V. und Coder323 umzusetzen.

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

Für IE und Firefox:

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

Für Chrome:

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

Java

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

Python

driver.maximize_window()

Rubin

@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

Sie können so etwas (C #) verwenden:

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

Browser mit C # maximieren (.NET):

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

Browser mit Java maximieren:

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

Eine andere Möglichkeit, mit Java zu tun:

Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenResolution = new Dimension((int) 
                    toolkit.getScreenSize().getWidth(), (int) 
                    toolkit.getScreenSize().getHeight());

driver.manage().window().setSize(screenResolution);
14
Ripon Al Wasim

Wenn Sie den Chrome-Treiber verwenden, können Sie die Funktionen einstellen

    var capabilities = new DesiredCapabilities();

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

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

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

Das folgende Selenium Java-Code-Snippet hat für mich funktioniert:

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

Für Java: 

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

Es funktioniert in IE, Mozilla, Chrome

5
Ramaguru N

Verwenden Sie einfach den Befehl Window.Maximize()

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

Für c #:

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

Für Java:

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

Wir haben Fehler mit neuen Treiberbibliotheken beobachtet. Sie können etwas alte Gläser verwenden, die neue Browserversionen verarbeiten können.

Die generische Hauptoption ist: -

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

Sie können auch eine andere Option verwenden, um das Browserfenster zu maximieren.

Beispiel:-

Fügen Sie die folgende Option hinzu und übergeben Sie sie dem Treiber: -

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

Der vollständige Code sieht wie folgt aus: -

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

Versuchen Sie dies auf Safari: -

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

Ich habe Jims Code verwendet, aber für WatiN und C # leicht modifiziert, um den Browser zu maximieren.

3
ParkerSuperstar

Sie können Selenium Emulation in WebDriver verwenden:

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

Die folgende Codezeile würde IE, Chrome und Mozilla maximieren

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

Die obige Codezeile und andere im Posting erwähnte Problemumgehungen funktionierten für den NodeWebKit-Browser nicht. Daher musste ich den folgenden systematischen C # -Code verwenden:

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

Diese Problemumgehung verwendet also im Grunde "ALT + SPACE", um das Browser-Aktionsmenü aufzurufen und "MAXIMIZE" aus den Optionen auszuwählen und "ENTER" zu drücken

1
spartan

Ich hatte das gleiche Problem, aber das Problem kann mit folgendem Code gelöst werden.

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

Es gibt eine Funktion, mit der Sie das Fenster in Python maximieren können, nämlich window_maximize (). Und so verwende ich es. Hoffentlich hilft das - 

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

Für Webdriverjs (node.js) maximiert das folgende Chrome-Fenster.

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

Diese Option ist für mich in Ordnung:

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

Diese Option funktioniert auf allen Betriebssystemen.

1
Sagar007

Ich habe diese Lösung verwendet 

            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 # -Client-Treiber:

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

===> füge auch einen Verweis auf die .NET Assembly "System.Windows.Forms" hinzu

... das einzige Problem ist, dass es nicht richtig positioniert ist
Bitte kommentieren Sie, wenn Sie dies korrigieren können

1
MacGyver

Folgendes hat sich für mich in C # bewährt, denn firefoxDriver ist global für die Klasse:

in den usings:

using System.Drawing;
using System.Windows.Forms;

im code:

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

Durch den folgenden Code kann ich das Fenster maximieren,

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

Für mich funktionierte keine der oben genannten Lösungen, wenn ich mit dem Selenium Web Driver C # + Chrome arbeite:

  • window.resizeTo (1024, 768); - Ich möchte den gesamten Bildschirm verwenden 
  • --start-maximized - es wird ignoriert
  • driver.manage (). window (). maximize (); - funktioniert nicht, da einige Erweiterungen erforderlich sind und ich keine Chrome-Erweiterungen verwenden darf

Ich habe es mit InputSimulator zum Laufen gebracht:

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

Ich habe viele der obigen Antworten ausprobiert, aber keine funktioniert gut ..__ Meine Chrome-Treiberversion ist 2.7 und Iam mit Selenium-Java-Version ist 2.9.0 .. Das offizielle Dokument schlägt vor, Folgendes zu verwenden:

var capabilities = new DesiredCapabilities();
var switches = new List<string>
                       {
                           "--start-maximized"
                       };
capabilities.SetCapability("chrome.switches", switches);    
new ChromeDriver(chromedriver_path, capabilities);

Das obige funktioniert auch nicht. Ich habe den Chrome-Treiber JsonWireProtocol überprüft: http://code.google.com/p/Selenium/wiki/JsonWireProtocol .

Das Chrome-Diver-Protokoll bietet eine Methode zur Maximierung des Fensters:

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

dieser Befehl wird jedoch nicht in Selenium-Java verwendet. Dies bedeutet, dass Sie den Befehl auch an Chrome senden. Sobald ich das getan habe, funktioniert es.

0
knight zhou

Das funktioniert gut für mich.

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

Chrome-Treiber unterstützen bereits:

Java:

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