2009-10-05 30 views
24

Estoy usando Selenium Remote Control. Durante la ejecución de las pruebas, la ventana real de Firefox es muy pequeña. Lo quiero en pantalla completa para que pueda ver lo que está sucediendo. ¿Cómo puedo maximizar la pantalla del navegador?Cómo cambiar el tamaño/maximizar la ventana de Firefox durante el lanzamiento de Selenium Remote Control?

+0

¿Qué lenguaje de programación usáis? ng con Selenium-RC? java, C# o qué? –

+0

¿Cómo cambiar el tamaño/maximizar FF ejecutando Selenium WebDriver? –

Respuesta

37

intentar el comando windowMaximize:

selenium.windowMaximize(); 

También puede establecer una anchura y una altura específica con el siguiente comando:

selenium.getEval("window.resizeTo(X, Y); window.moveTo(0,0);") 

Donde X es el ancho e Y es la altura.

+3

Y para aquellos de ustedes que usan Python, la llamada es, con toda probabilidad, 'my_selenium_instance.window_maximize()' –

+1

La evaluación no funciona en las versiones más recientes de Firefox. Ver la respuesta de Eli Colner. –

+9

@BrandonRhodes, en python es en realidad 'maximize_window()' – ykhrustalev

1

para Firefox: sel.key_press_native (122) (122 en el código de tecla F11)

+0

eso es un poco interesante de trivia. No sabía que pudieras hacer eso. Si bien es probable que no sea lo que estaba buscando, sería bueno para las presentaciones con guiones. – fijiaaron

2

Bueno, creo que la mejor manera es utilizar selenium.windowMaximize() función de selenio en lugar de manipulando el tamaño de las ventanas.

1

Para ampliar la sugerencia de David Hunt para un cambio de tamaño de ventana y movimiento más específicos, tenga en cuenta lo siguiente.

Para trabajar en la mayoría de los entornos, muévase antes de cambiar el tamaño. Esto es:

selenium.getEval ("window.moveTo (X, Y); window.resizeTo (X, Y);")

Para cubrir 2/3 del de la pantalla, la cual es muy útil para ver parte de la ventana de la conducción de selenio por debajo, y para hacer esto independientemente de la resolución de pantalla de destino:

selenium.getEval ("window.moveTo (screen.availWidth/3,0); window.resizeTo (screen.availWidth * (2/3), screen.availHeight); ");

26

Esto funciona para mí. Todas las otras soluciones no funcionaron en FF7.

WebDriver driver = ((WebDriverBackedSelenium) selenium).getWrappedDriver(); 
driver.manage().window().setPosition(new Point(0, 0)); 
driver.manage().window().setSize(new Dimension(1920, 1080)); 
+2

parece ser la única forma en FF7 + (para mí es FF9.0.1 en OSX) – yoosiba

+1

Funciona con solo las 2das dos líneas de la respuesta, ya que ejecuto con Webdriver puro sin Selenium. Gracias. – djangofan

+2

Versión de Javascript: '' driver.manage(). Window(). SetSize (1920, 1080); '' – user85461

2

Ninguna de las respuestas suministradas trabajo cuando pasa el parámetro -singlewindow al servidor Selenio RC. Sin embargo, si se pasa un perfil de Firefox con el servidor de selenio RC (as detailed somewhat here), se puede hacer una carpeta de perfil vacía y poner este archivo en la carpeta:

localstore.rdf(case sensitive filename!):

<?xml version="1.0"?> 
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#" 
     xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
    <RDF:Description RDF:about="chrome://browser/content/browser.xul#main-window" 
        sizemode="normal" 
        height="9999" 
        width="9999" 
        screenX="0" 
        screenY="0" /> 
        lastSelected="paneTabs" /> 
    <RDF:Description RDF:about="chrome://browser/content/browser.xul"> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#main-window"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#PersonalToolbar"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#nav-bar"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#status-bar"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#toggle_taskbar"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#navigator-toolbox"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#toolbar-menubar"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-box"/> 
    <NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-title"/> 
    </RDF:Description> 
</RDF:RDF> 

Reemplazar anchura y altura con su ancho y altura preferidos. 9999x9999 maximizará prácticamente cualquier monitor.

El ejemplo más simple posible de que ejecuta el servidor Selenio RC esta manera asumiendo que tenemos los ya mencionados localstore.rdf en nuestro directorio personal, y actualmente estamos en el directorio del servidor de Selenium RC:

rm -rf ~/ffProfile 
mkdir ~/ffProfile 
cp localstore.rdf ~/ffProfile 
java -jar selenium-server-*.jar -singlewindow -firefoxProfileTemplate "~/ffProfile" 

Esto también tiene el beneficio adicional de no "contaminar" sus pruebas.

3

selenio 2.31.0

driver = webdriver.Firefox() 

# Resize the window to the screen width/height 
driver.set_window_size(300, 500) 

# Move the window to position x/y 
driver.set_window_position(200, 200) 
+0

esto debería estar en Python? – David

5

Usted puede hacer lo siguiente:

page.driver.browser.manage.window.maximize 
+0

Ha, gracias por la edición, @Hugo! –

+0

ninguno de los otros funciona. Por razones de seguridad, un javascript –

+0

configurándolo funciona para Rails + pepino + selenio – equivalent8

0

En Ruby, la llamada sería

web_driver.manage.window.maximize

Cuestiones relacionadas