¿Hay alguna forma de maximizar la ventana del navegador con WebDriver (Selenium 2) con C #?
¿Hay alguna forma de maximizar la ventana del navegador con WebDriver (Selenium 2) con C #?
Respuestas:
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 JavascriptExector
siguiente:
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
screen
objeto javascript . Teniendo en cuenta estos puntos, el javascript probablemente debería ser:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
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);
AttributeError: 'WebDriver' object has no attribute 'Manage'
Para IE y Firefox:
driver.manage().window().maximize();
Para Chrome:
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
driver.manage().window().maximize();
driver.maximize_window()
@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
Puede usar algo como esto (C #):
driver.Manage().Window.Size = new Size(1024, 768);
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);
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.
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);
Simplemente use el Window.Maximize()
comando
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
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);
Para Java:
driver.manage().window().maximize();
Funcionará en IE, Mozilla, Chrome
Para C #:
driver.Manage().Window.Maximize();
Para Java:
driver.manage().window().maximize();
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);
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.
Puede usar la emulación de selenio en WebDriver:
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
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);
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()
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
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);
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');
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"
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.
El controlador de Chrome ya es compatible:
Java:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
Para mí, ninguna de las soluciones anteriores funcionó al trabajar con Selenium Web Driver C # + Chrome:
--start-maximized
- se ignoraLogré hacerlo funcionar usando InputSimulator :
var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
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);