web-dev-qa-db-fra.com

Comment maximiser la fenêtre du navigateur dans Selenium WebDriver (Selenium 2) en utilisant C #?

Existe-t-il un moyen de maximiser la fenêtre du navigateur en utilisant WebDriver (Selenium 2) avec C #?

111
Reflux

Il existe un problème en suspens concernant l'ajout de cette fonctionnalité à WebDriver. Ce problème peut être suivi ici: http://code.google.com/p/Selenium/issues/detail?id=174

Une solution de contournement consisterait à utiliser la JavascriptExector comme suit:

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

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

Cela fonctionne pour IE et Firefox. Chrome ne fonctionne pas. Un bogue a été soumis à ce sujet sur le projet ChromeDriver.

Pendant ce temps, le chrome consiste à mettre en œuvre ce que Joey V. et Coder323 ont suggéré.

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

Pour IE et Firefox:

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

Pour Chrome:

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

Java

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

Python

driver.maximize_window()

Rubis

@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

Vous pouvez utiliser quelque chose comme ceci (C #):

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

Maximiser le navigateur avec C # (.NET):

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

Maximiser le navigateur avec Java:

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

Une autre façon de faire avec Java:

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

Si vous utilisez le pilote Chrome, vous pouvez définir les fonctionnalités

    var capabilities = new DesiredCapabilities();

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

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

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

L'extrait de code Java Selenium suivant a fonctionné pour moi:

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

Pour Java: 

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

Cela fonctionnera dans IE, Mozilla, Chrome

5
Ramaguru N

Utilisez simplement la commande Window.Maximize()

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

Pour C #:

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

Pour Java:

driver.manage().window().maximize();
4
Kumrun Nahar Keya

Nous avons observé un bug avec les nouvelles bibliothèques de pilotes. Vous pouvez utiliser des jars légèrement anciens, capables de gérer les nouvelles versions de navigateurs.

L'option générique principale est: -

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

Vous pouvez également utiliser une autre option pour maximiser la fenêtre du navigateur.

Exemple:-

Ajoutez l'option ci-dessous et transmettez-la au conducteur: -

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

Le code complet ressemblera à ceci: -

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

Essayez ceci sur 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);
}

J'ai utilisé le code de Jim, mais légèrement modifié pour une utilisation avec WatiN et C # afin de maximiser le navigateur.

3
ParkerSuperstar

Vous pouvez utiliser Selenium Emulation dans WebDriver:

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

La ligne de code ci-dessous maximiserait IE, Chrome et Mozilla

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

La ligne de code ci-dessus et les autres solutions de contournement mentionnées dans le message ne fonctionnaient pas pour le navigateur NodeWebKit. C'est pourquoi j'ai dû utiliser du code C # natif, comme indiqué ci-dessous:

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

Donc, cette solution de contournement utilise essentiellement "ALT + ESPACE" pour afficher le menu Actions du navigateur afin de sélectionner "MAXIMISER" parmi les options et d'appuyer sur "ENTRER".

1
spartan

J'ai eu le même problème, mais le problème peut être résolu en utilisant le code suivant.

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

Il y a une fonction que vous pouvez utiliser pour agrandir la fenêtre dans Python qui est window_maximize (). Et voici comment je l'utilise. J'espère que cela vous aidera - 

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

Pour Webdriverjs (node.js), ce qui suit maximise la fenêtre 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
Anup

Cette option me convient:

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

Cette option fonctionne sur tous les systèmes d'exploitation.

1
Sagar007

J'ai utilisé cette solution 

            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

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

===> ajoute également une référence à .NET Assembly "System.Windows.Forms"

... le seul problème est qu'il n'est pas correctement positionné
.__ s'il vous plaît commenter si vous pouvez corriger cela

1
MacGyver

Voici ce qui a fonctionné pour moi en C #, firefoxDriver est global pour la classe:

dans les usings:

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

dans le 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

Grâce au code ci-dessous, je suis en mesure de maximiser la fenêtre,

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

Pour moi, aucune des solutions ci-dessus n'a fonctionné avec Selenium Web Driver C # + Chrome:

  • window.resizeTo (1024, 768); - Je veux utiliser tout l'écran 
  • --start-maximized - il est ignoré
  • driver.manage (). window (). maximiser (); - ne fonctionne pas car il nécessite une extension et je ne suis pas autorisé à utiliser les extensions Chrome

J'ai réussi à le faire fonctionner avec InputSimulator :

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

J'ai essayé beaucoup des réponses ci-dessus, mais aucune ne fonctionne bien . Ma version du pilote Chrome est 2.7 et Iam utilisant Selenium-Java vesion est 2.9.0 . Le document officiel suggère d'utiliser:

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

Ce qui précède ne fonctionne pas non plus. J'ai vérifié le pilote chromé JsonWireProtocol: http://code.google.com/p/Selenium/wiki/JsonWireProtocol

Le protocole chrome diver fournit une méthode pour maximiser la fenêtre:

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

mais cette commande n'est pas utilisée dans Selenium-Java. Cela signifie que vous envoyez également la commande pour vous chromer vous-même. Une fois que j'ai fait ça ça marche.

0
knight zhou

Cela fonctionne bien pour moi.

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

Le pilote Chrome supporte déjà:

Java:

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