Bagaimana cara memaksimalkan jendela browser di Selenium WebDriver (Selenium 2) menggunakan C #?


Jawaban:


38

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 JavascriptExectorberikut ini:

public void resizeTest() {
    driver.Navigate().GoToUrl("http://www.example.com/");
((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");
}

13
Dua hal: 1) Jika Anda peduli dengan apa yang terlihat, Anda mungkin ingin memindahkan jendela ke asal sebelum menjadikannya layar penuh. 2) Jika dimensi layar adalah variabel Anda bisa mendapatkannya pada saat dijalankan dengan screenobjek javascript . Mempertimbangkan poin-poin ini, javascript mungkin seharusnya:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
Guildencrantz

4
Perhatikan bahwa ada masalah memindahkan window ke (0,0) di Firefox pada Mac. Tampaknya tidak memperhitungkan wilayah tajuknya dengan benar. Memindahkan jendela ke (0,1) tampaknya benar-benar memindahkannya ke (0,0), jadi satu bug membantu yang lain. Pada titik itu Anda dapat memaksimalkan jendela dengan benar.
nirvdrum

Seharusnya contoh JavascriptExecutor IJavaScriptExecutor
TuGordoBello

160

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);

1
Cara ini untuk firefox adalah satu-satunya yang berfungsi, javascript tidak melakukan apa pun pada selenium 2.21
Sam Adamsh

6
Untuk case sensitive Java => driver.manage (). Window (). Maksimalkan ();
Janaaaa

AttributeError: 'WebDriver' object has no attribute 'Manage'
Pengguna

Baik. Saya akan mengucapkan terima kasih :) itu berfungsi pada chromedriver saya.
Xin

Saya menggunakan FF53 dengan Selenium WebDriver 3.3.0. driver.Manage (). Window.Maximize (); bekerja untuk saya
Ripon Al Wasim

37

Untuk IE dan Firefox:

driver.manage().window().maximize();

Untuk Chrome:

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver( options )

4
C # seperti ini. driver.Manage (). Window.Maximize ();
Chris Hawkes

driver.manage (). window (). maksimalkan (); bekerja untuk chrome juga
mosaad

Terima kasih Chris, C # membutuhkan metode huruf besar: ini. driver.Manage (). Window.Maximize ();
LA Guy 88

35

Jawa

driver.manage().window().maximize();

Python

driver.maximize_window()

Rubi

@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

15

Anda dapat menggunakan sesuatu seperti ini (C #):

driver.Manage().Window.Size = new Size(1024, 768);

2
Sayangnya ini melempar dan pengecualian untuk ChromeDriver. Bekerja dengan baik untuk IE dan Firefox.
Bryan Allred

Menggunakan kode ini dengan Selenium C # akan berfungsi dengan baik sekarang karena ChromeDriver sekarang disediakan oleh Google (meskipun itu untuk selenium 3). Atau Anda dapat menggunakan fungsi maksimalkan atau cukup tambahkan argumen berikut melalui opsi: "--mulai dimaksimalkan"
user1841243

15

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);

Ini gagal dalam kasus wadah docker krom dengan java.awt.HeadlessException kesalahan di sun.awt.HeadlessToolkit.getScreenSize (HeadlessToolkit.java:84). Apakah Anda mengalami masalah ini sebelumnya?
vikramvi

Saya mencoba dengan driver.Manage (). Window.Maximize (); di Selenium WebDriver C # pada FF dan itu bekerja dengan baik. Saya belum mencoba dengan Chrome.
Ripon Al Wasim

Ini bekerja untuk saya tetapi saya harus menambahkan driver.manage().window().setPosition(new Point(0,0));sebelum baris terakhir atau jendela tidak akan berada di posisi yang tepat.
swanhella

swanhella: Terima kasih untuk membagikan ini
Ripon Al Wasim

8

Jika Anda menggunakan Driver Chrome Anda dapat mengatur kemampuan

    var capabilities = new DesiredCapabilities();

    var switches = new List<string>
                       {
                           "--start-maximized"
                       };

    capabilities.SetCapability("chrome.switches", switches);

    new ChromeDriver(chromedriver_path, capabilities);

7

Cukup gunakan Window.Maximize()perintah

WebDriver driver= new ChromeDriver()
driver.Manage().Window.Maximize();  

6

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);

5

Untuk Jawa:

driver.manage().window().maximize();

Ini akan bekerja di IE, Mozilla, Chrome


Bagaimana saya bisa mengatur yang sama untuk AndroidDriver ();
Karthick

5

Saya memiliki masalah yang sama, tetapi masalahnya dapat diselesaikan dengan menggunakan kode berikut.

driver.manage().window().fullscreen();

4

Untuk C #:

driver.Manage().Window.Maximize();

Untuk Jawa:

driver.manage().window().maximize();

4

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);

3
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.


2

Anda dapat menggunakan Emulasi Selenium di WebDriver:

selenium = new WebDriverBackedSelenium(driver,url);
selenium.windowMaximize();

1
Mereka tidak memiliki Selenium Emulation di versi C # webdriver. Setidaknya belum di 2.0a4 (hanya melihat mereka merilis versi baru belum memeriksanya). Namun kode javascript di atas berfungsi dengan baik.
Reflux

Dan itu juga tidak mendukung iPhoneDriver, misalnya
Iulius Curt

Sayangnya WebDriverBackedSelenium.windowMaximize () tidak berfungsi di Firefox 7 atau Chrome 14 (meskipun itu berfungsi di IE8). Di belakang layar itu mengeluarkan perintah window.resize () Javascript, tetapi kedua browser ini mengabaikannya. Solusi @ joey-v bekerja untuk Chrome. Dan Luke Inman-Semerau memposting solusi di sini ;
Andrew Newdigate

2

Saya menggunakan solusi ini

            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);

1

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()

1

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


1

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);

1

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');

1

Opsi ini baik untuk saya:

ChromeOptions options = new ChromeOptions();
options.addArguments("start-fullscreen");

Opsi ini berfungsi pada semua OS.


1

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"


0

Melalui kode di bawah ini saya dapat memaksimalkan jendela,

((JavascriptExecutor) driver).executeScript("if(window.screen){
    window.moveTo(0, 0);
    window.resizeTo(window.screen.availWidth, window.screen.availHeight);
    };");

0

Ini bekerja dengan baik untuk saya.

Capybara.current_session.driver.browser.manage.window.resize_to(1800, 1000)

0

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.


0

Driver Chrome sudah mendukung:

Jawa:

webDriver = new ChromeDriver();
webDriver.manage().window().maximize();

0

Bagi saya, tidak ada solusi di atas yang berfungsi saat bekerja dengan Selenium Web Driver C # + Chrome:

  • window.resizeTo (1024, 768); - Saya ingin menggunakan seluruh layar
  • --start-maximized - itu diabaikan
  • driver.manage (). window (). maksimalkan (); - tidak berfungsi karena memerlukan ekstensi dan saya tidak diizinkan menggunakan ekstensi Chrome

Saya berhasil membuatnya bekerja menggunakan InputSimulator :

var inputSim = new InputSimulator();
// WinKey + UP = Maximize focused window
inputSim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.UP);

0

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);

Meskipun dapat diterima untuk memberikan jawaban hanya kode, seringkali lebih bermanfaat bagi komunitas jika Anda juga dapat memberikan penjelasan kode dan membantu orang-orang memahami mengapa hal itu mengatasi masalah. Itu sering mengurangi jumlah pertanyaan lanjutan, dan benar-benar dapat membantu pengembang baru memahami konsep yang mendasarinya. Itu sangat penting di sini, di mana sudah ada 27 jawaban lain; ada baiknya menyebut apa yang membuat pendekatan Anda berbeda dari jawaban yang ada. Maukah Anda memperbarui pertanyaan Anda dengan detail tambahan?
Jeremy Caney
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.