Gibt es eine Möglichkeit, das Browserfenster mithilfe von WebDriver (Selenium 2) mit C # zu maximieren?
Es gibt noch ein Problem mit dem Hinzufügen dieser Funktionalität zu WebDriver, das hier verfolgt werden kann: http://code.google.com/p/Selenium/issues/detail?id=174
Um dieses Problem zu umgehen, verwenden Sie die Variable JavascriptExector
wie folgt:
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
driver.Manage().Window.Maximize();
Dies funktioniert für IE und Firefox. Chrome funktioniert nicht. Für dieses ChromeDriver-Projekt wurde ein Fehler gemeldet.
In der Zwischenzeit besteht die Lösung für chrome darin, die Vorschläge von Joey V. und Coder323 umzusetzen.
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
Für IE und Firefox:
driver.manage().window().maximize();
Für 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
Sie können so etwas (C #) verwenden:
driver.Manage().Window.Size = new Size(1024, 768);
Browser mit C # maximieren (.NET):
driver.Manage().Window.Maximize();
Browser mit Java maximieren:
driver.manage().window().maximize();
Eine andere Möglichkeit, mit Java zu tun:
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenResolution = new Dimension((int)
toolkit.getScreenSize().getWidth(), (int)
toolkit.getScreenSize().getHeight());
driver.manage().window().setSize(screenResolution);
Wenn Sie den Chrome-Treiber verwenden, können Sie die Funktionen einstellen
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
Das folgende Selenium Java-Code-Snippet hat für mich funktioniert:
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);
Für Java:
driver.manage().window().maximize();
Es funktioniert in IE, Mozilla, Chrome
Verwenden Sie einfach den Befehl Window.Maximize()
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
Für c #:
driver.Manage().Window.Maximize();
Für Java:
driver.manage().window().maximize();
Wir haben Fehler mit neuen Treiberbibliotheken beobachtet. Sie können etwas alte Gläser verwenden, die neue Browserversionen verarbeiten können.
Die generische Hauptoption ist: -
driver.manage().window().maximize();
Sie können auch eine andere Option verwenden, um das Browserfenster zu maximieren.
Beispiel:-
Fügen Sie die folgende Option hinzu und übergeben Sie sie dem Treiber: -
chromeOptions.addArguments("--start-maximized");
Der vollständige Code sieht wie folgt aus: -
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");
Versuchen Sie dies auf 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);
}
Ich habe Jims Code verwendet, aber für WatiN und C # leicht modifiziert, um den Browser zu maximieren.
Sie können Selenium Emulation in WebDriver verwenden:
Selenium = new WebDriverBackedSelenium(driver,url);
Selenium.windowMaximize();
Die folgende Codezeile würde IE, Chrome und Mozilla maximieren
driver.manage().window().maximize();
Die obige Codezeile und andere im Posting erwähnte Problemumgehungen funktionierten für den NodeWebKit-Browser nicht. Daher musste ich den folgenden systematischen C # -Code verwenden:
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);
}
Diese Problemumgehung verwendet also im Grunde "ALT + SPACE", um das Browser-Aktionsmenü aufzurufen und "MAXIMIZE" aus den Optionen auszuwählen und "ENTER" zu drücken
Ich hatte das gleiche Problem, aber das Problem kann mit folgendem Code gelöst werden.
driver.manage().window().fullscreen();
Es gibt eine Funktion, mit der Sie das Fenster in Python maximieren können, nämlich window_maximize (). Und so verwende ich es. Hoffentlich hilft das -
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()
Für Webdriverjs (node.js) maximiert das folgende Chrome-Fenster.
var webdriver = require('Selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).build();
driver.manage().window().maximize();
driver.get('hxxp://localhost:8888');
Diese Option ist für mich in Ordnung:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-fullscreen");
Diese Option funktioniert auf allen Betriebssystemen.
Ich habe diese Lösung verwendet
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);
C # -Client-Treiber:
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);
===> füge auch einen Verweis auf die .NET Assembly "System.Windows.Forms" hinzu
... das einzige Problem ist, dass es nicht richtig positioniert ist
Bitte kommentieren Sie, wenn Sie dies korrigieren können
Folgendes hat sich für mich in C # bewährt, denn firefoxDriver ist global für die Klasse:
in den usings:
using System.Drawing;
using System.Windows.Forms;
im 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);
Durch den folgenden Code kann ich das Fenster maximieren,
((JavascriptExecutor) driver).executeScript("if(window.screen){
window.moveTo(0, 0);
window.resizeTo(window.screen.availWidth, window.screen.availHeight);
};");
Für mich funktionierte keine der oben genannten Lösungen, wenn ich mit dem Selenium Web Driver C # + Chrome arbeite:
--start-maximized
- es wird ignoriertIch habe es mit InputSimulator zum Laufen gebracht:
var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
Ich habe viele der obigen Antworten ausprobiert, aber keine funktioniert gut ..__ Meine Chrome-Treiberversion ist 2.7 und Iam mit Selenium-Java-Version ist 2.9.0 .. Das offizielle Dokument schlägt vor, Folgendes zu verwenden:
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
Das obige funktioniert auch nicht. Ich habe den Chrome-Treiber JsonWireProtocol
überprüft: http://code.google.com/p/Selenium/wiki/JsonWireProtocol .
Das Chrome-Diver-Protokoll bietet eine Methode zur Maximierung des Fensters:
/session/:sessionId/window/:windowHandle/maximize,
dieser Befehl wird jedoch nicht in Selenium-Java verwendet. Dies bedeutet, dass Sie den Befehl auch an Chrome senden. Sobald ich das getan habe, funktioniert es.
Das funktioniert gut für mich.
Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)
Chrome-Treiber unterstützen bereits:
Java:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();