¿Cómo maximizar la ventana del navegador en Selenium WebDriver (Selenium 2) usando C #?


Respuestas:


38

Hay un problema pendiente para agregar esta funcionalidad a WebDriver, que puede rastrearse aquí: http://code.google.com/p/selenium/issues/detail?id=174

Una solución alternativa sería utilizar lo JavascriptExectorsiguiente:

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

13
Dos cosas: 1) Si le importa lo que está visible, probablemente quiera mover la ventana al origen antes de hacerla a pantalla completa. 2) Si las dimensiones de la pantalla son variables, puede obtenerlas en tiempo de ejecución con el screenobjeto javascript . Teniendo en cuenta estos puntos, el javascript probablemente debería ser:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
Guildencrantz

44
Tenga en cuenta que hay un problema al mover la ventana a (0,0) en Firefox en Mac. Parece no tener en cuenta su región de encabezado correctamente. Sin embargo, mover la ventana a (0,1) parece moverlo a (0,0), por lo que un error ayuda a otro. En ese punto, puede maximizar la ventana correctamente.
nirvdrum

Debería ser una instancia de JavascriptExecutor IJavaScriptExecutor
TuGordoBello

160

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

Esto funciona para IE y Firefox. Chrome no funciona. Hay un error enviado para esto en el proyecto ChromeDriver.

Mientras tanto, la solución para Chrome es implementar lo que sugirieron Joey V. y Coder323.

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

1
De esta manera para Firefox es el único que funciona, el JavaScript no hace nada en el selenio 2.21
Sam Adamsh

66
Para mayúsculas y minúsculas Java => driver.manage (). Window (). Maximizar ();
Janaaaa

AttributeError: 'WebDriver' object has no attribute 'Manage'
Usuario

Bien. Diré gracias :) funciona en mi chromedriver.
Xin

Estoy usando FF53 con Selenium WebDriver 3.3.0. driver.Manage (). Window.Maximize (); funciona para mí
Ripon Al Wasim

37

Para IE y Firefox:

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

Para Chrome:

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

44
C # es así. driver.Manage (). Window.Maximize ();
Chris Hawkes

driver.manage (). window (). maximizar (); también funciona para Chrome
mosaad

Gracias Chris, C # necesita métodos en mayúsculas: esto. driver.Manage (). Window.Maximize ();
LA Guy 88

35

Java

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

Pitón

driver.maximize_window()

Rubí

@driver.manage.window.maximize

O

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

O

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

15

Puede usar algo como esto (C #):

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

2
Desafortunadamente, esto arroja una excepción para ChromeDriver. Sin embargo, funciona bien para IE y Firefox.
Bryan Allred

Usar este código con Selenium C # debería funcionar bien ahora, ya que ChromeDriver ahora es proporcionado por Google (aunque es para el selenio 3). Alternativamente, podría usar la función maximizar o simplemente agregar el siguiente argumento a través de las opciones: "--start-maximized"
user1841243

15

Paso / escenario de prueba:
1. Abra un navegador y navegue hasta TestURL
2. Maximice el navegador

Maximice el navegador con C # (.NET):

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

Maximiza el navegador con Java:

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

Otra forma de hacer con Java:

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

driver.manage().window().setSize(screenResolution);

Esto falla en el caso del contenedor de acoplador de Chrome con error java.awt.HeadlessException en sun.awt.HeadlessToolkit.getScreenSize (HeadlessToolkit.java:284). ¿Encontró este problema antes?
vikramvi

Lo intenté con driver.Manage (). Window.Maximize (); en Selenium WebDriver C # en FF y funcionó bien. No probé con Chrome todavía.
Ripon Al Wasim

Esto funcionó para mí, pero tuve que agregar driver.manage().window().setPosition(new Point(0,0));antes de la última línea o la ventana no estaría en la posición correcta.
swanhella

swanhella: Gracias por compartir esto
Ripon Al Wasim

8

Si está utilizando el controlador de Chrome, puede configurar las capacidades

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);

7

Simplemente use el Window.Maximize()comando

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

6

El siguiente fragmento de código Selenium Java funcionó para mí:

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

Para Java:

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

Funcionará en IE, Mozilla, Chrome


¿Cómo podría establecer lo mismo para AndroidDriver ();
Karthick

5

Tuve el mismo problema, pero el problema se puede resolver utilizando el siguiente código.

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

4

Para C #:

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

Para Java:

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

4

Hemos observado errores con las nuevas bibliotecas de controladores. Puede usar frascos un poco viejos que pueden manejar nuevas versiones de navegadores.

La opción genérica principal es: -

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

También puede usar otra opción para maximizar la ventana del navegador.

Ejemplo:-

Agregue la siguiente opción y páselo al controlador: -

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

El código completo se verá a continuación: -

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

O

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

Prueba esto en 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);

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

Usé el código de Jim, pero lo modifiqué un poco para usarlo con WatiN y C # para maximizar el navegador.


2

Puede usar la emulación de selenio en WebDriver:

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

1
No tienen Selenium Emulation en la versión C # de webdriver. Al menos todavía no en 2.0a4 (aunque acabo de ver que lanzaron una nueva versión, aún no la he probado). Sin embargo, el código JavaScript anterior funciona muy bien.
Reflujo

Y tampoco es compatible con iPhoneDriver, por ejemplo
Iulius Curt el

Lamentablemente, WebDriverBackedSelenium.windowMaximize () no funciona en Firefox 7 o Chrome 14 (aunque sí funciona en IE8). Detrás de escena emite un comando Javascript window.resize (), pero ambos navegadores lo ignoran. La solución de @ joey-v funciona para Chrome. Y Luke Inman-Semerau publicó una solución aquí ;
Andrew Newdigate

2

Utilicé esta solución

            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

Hay una función que puede usar para maximizar la ventana en Python que es window_maximize (). Y así es como lo estoy usando. Espero que esto ayude.

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

Controladores de cliente 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);

===> también agregue una referencia al ensamblado .NET "System.Windows.Forms"

... el único problema es que no está colocado correctamente
... comente si puede corregir esto


1

Esto es lo que funcionó para mí en C #, firefoxDriver es global para la clase:

en los usos:

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

en el código:

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

Para Webdriverjs (node.js), lo siguiente maximiza la ventana de 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

Esta opción está bien para mí:

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

Esta opción funciona en todos los sistemas operativos.


1

La siguiente línea de código maximizaría IE, Chrome y Mozilla

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

La línea de código anterior y otras soluciones alternativas mencionadas en la publicación no funcionaron para el navegador NodeWebKit, por lo que, como solución alternativa, tuve que usar el código C # nativo como se menciona a continuación:

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

Por lo tanto, esta solución utiliza básicamente "ALT + ESPACIO" para abrir el menú de acción del navegador para seleccionar "MAXIMIZAR" de las opciones y presiona "ENTRAR"


0

A través del siguiente código, puedo maximizar la ventana,

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

0

Esto está funcionando bien para mí.

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

0

Intenté muchas de las respuestas anteriores, pero ninguna funciona bien. La versión de mi controlador de Chrome es 2.7 e Iam que usa la versión de selenium-java es 2.9.0. El documento oficial sugiere usar:

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

Lo anterior tampoco funciona. Revisé el controlador de Chrome JsonWireProtocol: http://code.google.com/p/selenium/wiki/JsonWireProtocol

El protocolo chrome diver proporciona un método para maximizar la ventana:

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

pero este comando no se usa en selenium-java. Esto significa que también envía el comando a Chrome usted mismo. Una vez que hice esto funciona.


0

El controlador de Chrome ya es compatible:

Java:

webDriver = new ChromeDriver();
webDriver.manage().window().maximize();

0

Para mí, ninguna de las soluciones anteriores funcionó al trabajar con Selenium Web Driver C # + Chrome:

  • window.resizeTo (1024, 768);- Quiero usar toda la pantalla
  • --start-maximized - se ignora
  • driver.manage (). window (). maximizar ();- no funciona porque requiere alguna extensión y no puedo usar extensiones de Chrome

Logré hacerlo funcionar usando InputSimulator :

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

0

Puede probar con este código para maximizar la ventana de Chrome.

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

WebDriver driver = new ChromeDriver(options);

Si bien es aceptable proporcionar respuestas de solo código, a menudo es más útil para la comunidad si también puede proporcionar una explicación del código y ayudar a las personas a comprender por qué aborda el problema. Eso a menudo reduce la cantidad de preguntas de seguimiento y realmente puede ayudar a los nuevos desarrolladores a comprender los conceptos subyacentes. Eso es especialmente importante aquí, donde ya hay otras 27 respuestas; Vale la pena mencionar lo que distingue su enfoque de las respuestas existentes. ¿Te importaría actualizar tu pregunta con detalles adicionales?
Jeremy Caney
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.