Apakah ada cara untuk memaksimalkan jendela browser menggunakan WebDriver (Selenium 2) dengan C #?
Apakah ada cara untuk memaksimalkan jendela browser menggunakan WebDriver (Selenium 2) dengan C #?
Jawaban:
Ada masalah luar biasa untuk menambahkan fungsionalitas ini ke WebDriver, yang dapat dilacak di sini: http://code.google.com/p/selenium/issues/detail?id=174
Solusinya adalah menggunakan yang JavascriptExector
berikut ini:
public void resizeTest() {
driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}
screen
objek javascript . Mempertimbangkan poin-poin ini, javascript mungkin seharusnya:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
driver.Manage().Window.Maximize();
Ini berfungsi untuk IE dan Firefox. Chrome tidak berfungsi. Ada bug yang dikirimkan untuk ini di proyek ChromeDriver.
Sementara itu, solusi untuk chrome adalah mengimplementasikan apa yang disarankan Joey V. dan Coder323.
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
driver = new ChromeDriver(options);
AttributeError: 'WebDriver' object has no attribute 'Manage'
Untuk IE dan Firefox:
driver.manage().window().maximize();
Untuk Chrome:
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )
driver.manage().window().maximize();
driver.maximize_window()
@driver.manage.window.maximize
ATAU
max_width, max_height = driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)
ATAU
target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size
Anda dapat menggunakan sesuatu seperti ini (C #):
driver.Manage().Window.Size = new Size(1024, 768);
Langkah / skenario pengujian:
1. Buka browser dan navigasikan ke TestURL
2. Maksimalkan browser
Maksimalkan browser dengan C # (.NET):
driver.Manage().Window.Maximize();
Maksimalkan browser dengan Java:
driver.manage().window().maximize();
Cara lain yang bisa dilakukan dengan 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));
sebelum baris terakhir atau jendela tidak akan berada di posisi yang tepat.
Cukup gunakan Window.Maximize()
perintah
WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();
Cuplikan kode Selenium Java berikut ini berfungsi untuk saya:
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);
Untuk Jawa:
driver.manage().window().maximize();
Ini akan bekerja di IE, Mozilla, Chrome
Untuk C #:
driver.Manage().Window.Maximize();
Untuk Jawa:
driver.manage().window().maximize();
Kami telah mengamati bug dengan pustaka driver baru. Anda bisa menggunakan toples yang agak lama yang bisa menangani versi browser baru.
Opsi generik utama adalah: -
driver.manage().window().maximize();
Anda juga dapat menggunakan opsi lain untuk memaksimalkan jendela browser.
Contoh:-
Tambahkan opsi di bawah ini dan meneruskannya ke driver: -
chromeOptions.addArguments("--start-maximized");
Kode lengkap akan terlihat seperti di bawah ini: -
System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);
ATAU
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");
Coba ini di 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);
}
Saya menggunakan kode Jim, tetapi sedikit dimodifikasi untuk digunakan dengan WatiN dan C # untuk memaksimalkan browser.
Anda dapat menggunakan Emulasi Selenium di WebDriver:
selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();
Ada fungsi yang dapat Anda gunakan untuk memaksimalkan jendela dengan Python yaitu window_maximize (). Dan ini adalah bagaimana saya menggunakannya. Semoga ini membantu -
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 klien 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);
===> juga menambahkan referensi ke .NET assembly "System.Windows.Forms"
... satu-satunya masalah adalah tidak diposisikan dengan benar
... beri komentar jika Anda dapat memperbaikinya
Inilah yang bekerja untuk saya di C #, firefoxDriver bersifat global ke kelas:
dalam usings:
using System.Drawing;
using System.Windows.Forms;
dalam kode:
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);
Untuk Webdriverjs (node.js), berikut ini memaksimalkan jendela 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');
Baris kode di bawah ini akan memaksimalkan IE, Chrome dan Mozilla
driver.manage().window().maximize();
Baris kode di atas dan solusi lain yang disebutkan dalam pos tidak berfungsi untuk browser NodeWebKit, jadi sebagai solusi saya harus menggunakan kode C # asli seperti yang disebutkan di bawah ini:
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);
}
Jadi solusi ini pada dasarnya menggunakan "ALT + SPACE" untuk memunculkan menu tindakan browser untuk memilih "MAKSIMAL" dari opsi dan tekan "ENTER"
Saya mencoba banyak jawaban di atas, tetapi tidak ada yang berhasil. Versi driver chrome saya adalah 2.7 dan Iam menggunakan vesion selenium-java 2.9.0. Dokumen resmi menyarankan menggunakan:
var capabilities = new DesiredCapabilities();
var switches = new List<string>
{
"--start-maximized"
};
capabilities.SetCapability("chrome.switches", switches);
new ChromeDriver(chromedriver_path, capabilities);
Di atas juga tidak berfungsi. Saya memeriksa driver chrome JsonWireProtocol
:
http://code.google.com/p/selenium/wiki/JsonWireProtocol
Protokol penyelam chrome menyediakan metode untuk memaksimalkan jendela:
/session/:sessionId/window/:windowHandle/maximize,
tetapi perintah ini tidak digunakan dalam selenium-java. Ini berarti Anda juga mengirim perintah ke chrome sendiri. Setelah saya melakukan ini, ini berhasil.
Driver Chrome sudah mendukung:
Jawa:
webDriver = new ChromeDriver();
webDriver.manage().window().maximize();
Bagi saya, tidak ada solusi di atas yang berfungsi saat bekerja dengan Selenium Web Driver C # + Chrome:
--start-maximized
- itu diabaikanSaya berhasil membuatnya bekerja menggunakan InputSimulator :
var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);
Anda dapat mencoba dengan kode ini untuk memaksimalkan jendela chrome.
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
WebDriver driver = new ChromeDriver(options);