Comment maximiser la fenêtre du navigateur en Sélénium WebDriver (Selenium 2) en utilisant C #?

StackOverflow https://stackoverflow.com/questions/3189430

  •  02-10-2019
  •  | 
  •  

Question

Est-il possible de maximiser la fenêtre du navigateur en utilisant WebDriver (Selenium 2) avec C #?

Était-ce utile?

La solution

Il y a une question en suspens pour ajouter cette fonctionnalité à WebDriver, qui peut être suivi ici: http://code.google.com/p/selenium/issues/detail?id=174

Une solution serait d'utiliser le JavascriptExector comme suit:

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

Autres conseils

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

Cela fonctionne pour IE et Firefox. Chrome ne fonctionne pas. Il y a un bug enregistré pour ce projet sur ChromeDriver.

Pendant ce temps, le get autour du chrome est de mettre en œuvre ce qui a suggéré Joey V. et Coder323.

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

Pour IE et Firefox:

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

Pour Chrome:

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

Java

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

Python

driver.maximize_window()

Ruby

@driver.manage.window.maximize

ou

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

ou

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

Vous pouvez utiliser quelque chose comme ça (C #):

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

Maximize navigateur avec C # (.NET):

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

Maximize navigateur avec Java:

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

Une autre façon de le faire avec Java:

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

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

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

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);

Il suffit, utiliser la commande Window.Maximize()

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

Le code suivant Sélénium snippet Java 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);

Pour Java:

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

Il fonctionne dans IE, Mozilla, Chrome

Pour C #:

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

Pour Java:

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

Nous avons observé bug avec les nouvelles bibliothèques de pilotes. Vous pouvez utiliser des pots un peu vieux qui sont en mesure de gérer les nouvelles versions de navigateurs.

La principale option générique est: -

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

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

Exemple: -

Ajouter ci-dessous l'option et le transmettre à conduire: -

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

Le code complet ressemblera ci-dessous: -

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

ou

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

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

Vous pouvez utiliser Sélénium Emulation WebDriver:

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

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

Il y a une fonction que vous pouvez utiliser pour agrandir la fenêtre en Python qui est window_maximize (). Et voilà comment j'utilise it.Hope cela aide -

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

C # pilotes clients:

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

===> ajouter également une référence à l'assemblage .NET "System.Windows.Forms"

... le seul problème est qu'il est mal positionné
... Veuillez commentaire si vous pouvez corriger

Voici ce qui a fonctionné pour moi en C #, firefoxDriver est globale à 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);

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

Webdriverjs (Node.js), ce qui suit maximise chrome fenêtre.

var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).build();
driver.manage().window().maximize();
driver.get('hxxp://localhost:8888');

Cette option est bien pour moi:

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

Cette option fonctionne sur tous les OS.

Le dessous de ligne de code permettrait de maximiser IE, Chrome et Mozilla

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

La ligne ci-dessus code et d'autres solutions de contournement mentionnées dans le poste n'a pas fonctionné pour le navigateur NodeWebKit, donc comme solution que je devais utiliser le code natif C #, comme mentionné 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 d'action du navigateur pour sélectionner « OPTIMISER » dans les options et les presses « ENTRER »

Grâce au-dessous du code 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);
    };");

Cela fonctionne bien pour moi.

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

J'ai essayé beaucoup des réponses ci-dessus, mais aucun bien. Mon chrome version du pilote est de 2,7 et Iam utilisant vesion sélénium-java 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);

Le ci-dessus fonctionne pas non plus. J'ai vérifié le conducteur chrome JsonWireProtocol: http://code.google.com/p/selenium/wiki/JsonWireProtocol

Le protocole de plongeur de chrome fournit un procédé pour maximiser la fenêtre:

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

mais cette commande n'est pas utilisé en sélénium-java. Cela signifie que vous aussi envoyer la commande pour vous chrome. Une fois que je l'ai fait cela fonctionne.

pilote Chrome supporte déjà:

Java:

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

Pour moi, aucune des solutions ci-dessus travaillé lorsque vous travaillez avec Sélénium Web pilote C # + Chrome:

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

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

var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top