Esiste un modo per ingrandire la finestra del browser utilizzando WebDriver (Selenium 2) con C #?
Esiste un modo per ingrandire la finestra del browser utilizzando WebDriver (Selenium 2) con C #?
Risposte:
C'è un problema in sospeso per aggiungere questa funzionalità a WebDriver, che può essere rintracciato qui: http://code.google.com/p/selenium/issues/detail?id=174
Una soluzione alternativa sarebbe utilizzare il JavascriptExector
seguente:
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
screen
oggetto javascript . Tenendo conto di questi punti, probabilmente il javascript dovrebbe essere:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
driver.Manage().Window.Maximize();
Funziona con IE e Firefox. Chrome non funziona. È stato inviato un bug per questo sul progetto ChromeDriver.
Nel frattempo, il giro per Chrome è quello di implementare ciò che Joey V. e Coder323 hanno suggerito.
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
AttributeError: 'WebDriver' object has no attribute 'Manage'
Per IE e Firefox:
driver.manage().window().maximize();
Per Chrome:
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
driver.manage().window().maximize();
driver.maximize_window()
@driver.manage.window.maximize
O
max_width, max_height = driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)
O
target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
Puoi usare qualcosa del genere (C #):
driver.Manage().Window.Size = new Size(1024, 768);
Fase / scenario del test:
1. Aprire un browser e accedere a TestURL
2. Massimizzare il browser
Massimizza il browser con C # (.NET):
driver.Manage().Window.Maximize();
Massimizza il browser con Java:
driver.manage().window().maximize();
Un altro modo di fare con 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));
prima che l'ultima riga o la finestra non fosse nella posizione giusta.
Usa semplicemente il Window.Maximize()
comando
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
Il seguente frammento di codice Java Selenium ha funzionato per me:
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);
Per Java:
driver.manage().window().maximize();
Funzionerà in IE, Mozilla, Chrome
Per C #:
driver.Manage().Window.Maximize();
Per Java:
driver.manage().window().maximize();
Abbiamo riscontrato un bug con le nuove librerie di driver. Puoi usare barattoli leggermente vecchi che sono in grado di gestire le nuove versioni del browser.
L'opzione generica principale è: -
driver.manage().window().maximize();
Puoi anche usare altre opzioni per ingrandire la finestra del browser.
Esempio:-
Aggiungi l'opzione seguente e passala al driver: -
chromeOptions.addArguments("--start-maximized");
Il codice completo sarà simile al seguente: -
System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);
O
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");
Prova questo su 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);
}
Ho usato il codice di Jim, ma leggermente modificato per l'uso con WatiN e C # per massimizzare il browser.
È possibile utilizzare l' emulazione del selenio in WebDriver:
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
C'è una funzione che puoi usare per ingrandire la finestra in Python che è window_maximize (). Ed è così che lo sto usando. Spero che questo aiuti -
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()
Driver client 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);
===> aggiungi anche un riferimento all'assembly .NET "System.Windows.Forms"
... l'unico problema è che non è posizionato correttamente
... si prega di commentare se è possibile correggere questo
Ecco cosa ha funzionato per me in C #, firefoxDriver è globale per la classe:
negli usi:
using System.Drawing;
using System.Windows.Forms;
nel codice:
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);
Per Webdriverjs (node.js), quanto segue massimizza la finestra di 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 seguente riga di codice massimizzerebbe IE, Chrome e Mozilla
driver.manage().window().maximize();
La precedente riga di codice e altre soluzioni alternative menzionate nel post non funzionavano per il browser NodeWebKit, quindi come soluzione alternativa ho dovuto utilizzare il codice C # nativo come indicato di seguito:
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);
}
Quindi questa soluzione alternativa utilizza fondamentalmente "ALT + SPAZIO" per visualizzare il menu di azione del browser per selezionare "MASSIMA" dalle opzioni e premere "INVIO"
Ho provato molte delle risposte sopra, ma nessuna funziona bene. La mia versione del driver Chrome è 2.7 e Iam usando selenium-java vesion è 2.9.0. Il documento ufficiale suggerisce di usare:
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
Anche quanto sopra non funziona. Ho controllato il driver Chrome JsonWireProtocol
:
http://code.google.com/p/selenium/wiki/JsonWireProtocol
Il protocollo Chrome Diver offre un metodo per massimizzare la finestra:
/session/:sessionId/window/:windowHandle/maximize,
ma questo comando non è usato in selenium-java. Ciò significa che invii anche il comando a Chrome te stesso. Una volta fatto questo funziona.
Il driver Chrome supporta già:
Giava:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
Per me, nessuna delle soluzioni sopra ha funzionato quando si lavora con Selenium Web Driver C # + Chrome:
--start-maximized
- viene ignoratoSono riuscito a farlo funzionare usando InputSimulator :
var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
Puoi provare con questo codice per ingrandire la finestra di Chrome.
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);