Existe-t-il un moyen de maximiser la fenêtre du navigateur en utilisant WebDriver (Selenium 2) avec C #?
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);");
}
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);
Pour IE et Firefox:
driver.manage().window().maximize();
Pour Chrome:
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
driver.manage().window().maximize();
driver.maximize_window()
@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
Vous pouvez utiliser quelque chose comme ceci (C #):
driver.Manage().Window.Size = new Size(1024, 768);
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);
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);
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);
Pour Java:
driver.manage().window().maximize();
Cela fonctionnera dans IE, Mozilla, Chrome
Utilisez simplement la commande Window.Maximize()
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
Pour C #:
driver.Manage().Window.Maximize();
Pour Java:
driver.manage().window().maximize();
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);
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.
Vous pouvez utiliser Selenium Emulation dans WebDriver:
Selenium = new WebDriverBackedSelenium(driver,url);
Selenium.windowMaximize();
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".
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 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()
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');
Cette option me convient:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-fullscreen");
Cette option fonctionne sur tous les systèmes d'exploitation.
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);
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
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);
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);
};");
Pour moi, aucune des solutions ci-dessus n'a fonctionné avec Selenium Web Driver C # + Chrome:
--start-maximized
- il est ignoré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);
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.
Cela fonctionne bien pour moi.
Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)
Le pilote Chrome supporte déjà:
Java:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();