Existe-t-il un moyen de maximiser la fenêtre du navigateur en utilisant WebDriver (Selenium 2) avec C #?
Existe-t-il un moyen de maximiser la fenêtre du navigateur en utilisant WebDriver (Selenium 2) avec C #?
Réponses:
Il y a un problème en suspens pour ajouter cette fonctionnalité à WebDriver, qui peut être suivi ici: http://code.google.com/p/selenium/issues/detail?id=174
Une solution de contournement consiste à utiliser le JavascriptExector
comme suit:
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
screen
objet javascript . En tenant compte de ces points, le javascript devrait probablement être:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
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, la solution pour le chrome consiste à implémenter ce que Joey V. et Coder323 ont suggéré.
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
AttributeError: 'WebDriver' object has no attribute 'Manage'
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
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 ceci (C #):
driver.Manage().Window.Size = new Size(1024, 768);
Étape / scénario de test:
1. Ouvrez un navigateur et accédez à TestURL
2. Agrandissez le navigateur
Maximisez le navigateur avec C # (.NET):
driver.Manage().Window.Maximize();
Maximisez 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);
driver.manage().window().setPosition(new Point(0,0));
avant la dernière ligne ou la fenêtre ne serait pas dans la bonne position.
Utilisez simplement la Window.Maximize()
commande
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
L'extrait de code Selenium Java 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
Pour C #:
driver.Manage().Window.Maximize();
Pour Java:
driver.manage().window().maximize();
Nous avons observé un bogue avec les nouvelles bibliothèques de pilotes. Vous pouvez utiliser des fichiers jar légèrement anciens capables de gérer de nouvelles versions de navigateurs.
La principale option générique est: -
driver.manage().window().maximize();
Vous pouvez également utiliser une autre option pour agrandir la fenêtre du navigateur.
Exemple:-
Ajoutez l'option ci-dessous et transmettez-la au conducteur: -
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 ceci 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);
}
J'ai utilisé le code de Jim, mais légèrement modifié pour une utilisation avec WatiN et C # pour maximiser le navigateur.
Vous pouvez utiliser l' émulation Selenium dans WebDriver:
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
Il existe une fonction que vous pouvez utiliser pour maximiser la fenêtre en Python qui est window_maximize (). Et voici comment je l'utilise. J'espère que 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()
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);
===> ajouter également une référence à l'assembly .NET "System.Windows.Forms"
... le seul problème est qu'il n'est pas positionné correctement
... veuillez commenter si vous pouvez corriger cela
Voici ce qui a fonctionné pour moi en C #, firefoxDriver est global à la classe:
dans les utilisations:
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);
Pour Webdriverjs (node.js), ce qui suit maximise la fenêtre 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 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 l'article ne fonctionnaient pas pour le navigateur NodeWebKit, donc comme solution de contournement, j'ai dû utiliser le code C # natif 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 «MAXIMISER» dans les options et appuie sur «ENTRÉE»
J'ai essayé plusieurs des réponses ci-dessus, mais aucune ne fonctionne bien. Ma version de 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 Chrome 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 vous-même la commande à Chrome. Une fois que j'ai fait cela, cela fonctionne.
Le pilote Chrome prend déjà en charge:
Java:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
Pour moi, aucune des solutions ci-dessus ne fonctionnait lorsque je travaillais avec Selenium Web Driver C # + Chrome:
--start-maximized
- il est ignoré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);
Vous pouvez essayer avec ce code pour maximiser la fenêtre de chrome.
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);