C # kullanarak Selenium WebDriver'da (Selenium 2) tarayıcı penceresi nasıl büyütülür?


Yanıtlar:


38

Bu işlevselliğin WebDriver'a eklenmesiyle ilgili çözülmemiş bir sorun var ve buradan izlenebilir: http://code.google.com/p/selenium/issues/detail?id=174

Bir geçici çözüm JavascriptExectoraşağıdaki gibi kullanmak olacaktır :

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

13
İki şey: 1) Neyin görünür olduğunu önemsiyorsanız, muhtemelen tam ekran yapmadan önce pencereyi başlangıç ​​noktasına taşımak istersiniz. 2) Ekran boyutları değişkense, bunları javascript screennesnesiyle çalışma zamanında alabilirsiniz . Bu noktaları dikkate alarak, javascript muhtemelen şöyle olmalıdır:window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
Guildencrantz

4
Mac'teki Firefox'ta pencereyi (0,0) konumuna taşımayla ilgili bir sorun olduğunu unutmayın. Başlık bölgesini tam olarak hesaba katmadığı görülüyor. Pencereyi (0,1) 'e taşımak aslında onu (0,0)' a hareket ettiriyor gibi görünüyor, bu yüzden bir hata diğerine yardımcı olur. Bu noktada pencereyi düzgün bir şekilde büyütebilirsiniz.
nirvdrum

JavascriptExecutor örneği olmalıdır IJavaScriptExecutor
TuGordoBello

160

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

Bu, IE ve Firefox için çalışır. Chrome çalışmıyor. Bunun için ChromeDriver projesinde gönderilen bir hata var.

Bu arada, krom için uğraşmak Joey V. ve Coder323'ün önerdiği şeyi uygulamaktır.

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

1
Firefox Bu şekilde çalışır, javascript doesnt selenyum 2.21 üzerinde anythign emin sadece bir tanesidir
Sam Adamsh

6
Büyük / küçük harfe duyarlı Java için => driver.manage (). Window (). Maximize ();
Janaaaa

AttributeError: 'WebDriver' object has no attribute 'Manage'
Kullanıcı

İyi. Teşekkür ederim :) krom sürücümde çalışıyor.
Xin

Selenium WebDriver 3.3.0 ile FF53 kullanıyorum. . driver.Manage () Window.Maximize (); benim için çalışıyor
Ripon Al Wasim

37

IE ve Firefox için:

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

Chrome için:

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

4
C # bu böyle. . driver.Manage () Window.Maximize ();
Chris Hawkes

. driver.manage () pencere () (en üst düzeye çıkarmak.); krom için de çalışıyor
mozaikler

Teşekkürler Chris, C # büyük harfli yöntemlere ihtiyaç duyar: bu. . driver.Manage () Window.Maximize ();
LA Guy 88

35

Java

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

piton

driver.maximize_window()

yakut

@driver.manage.window.maximize

VEYA

max_width, max_height = driver.execute_script("return [window.screen.availWidth, window.screen.availHeight];")
@driver.manage.window.resize_to(max_width, max_height)

VEYA

target_size = Selenium::WebDriver::Dimension.new(1600, 1268)
@driver.manage.window.size = target_size

15

Bunun gibi bir şey kullanabilirsiniz (C #):

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

2
Maalesef bu, ChromeDriver için bir istisna oluşturur. Yine de IE ve Firefox için iyi çalışıyor.
Bryan Allred

Bu kodu Selenium C # ile kullanmak, ChromeDriver artık Google tarafından sağlandığından (selenium 3 için olsa da) artık sorunsuz çalışacaktır. Alternatif olarak, maksimize işlevini kullanabilir veya seçenekler aracılığıyla aşağıdaki bağımsız değişkeni ekleyebilirsiniz: "--start-maximized"
user1841243

15

Test adımı / senaryo:
1. Bir tarayıcı açın ve TestURL'ye gidin
2. Tarayıcıyı büyütün

Tarayıcıyı C # (.NET) ile büyütün:

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

Tarayıcıyı Java ile büyütün:

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

Java ile yapmanın başka bir yolu:

Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenResolution = new Dimension((int) 
                    toolkit.getScreenSize().getWidth(), (int) 
                    toolkit.getScreenSize().getHeight());

driver.manage().window().setSize(screenResolution);

Bu, sun.awt.HeadlessToolkit.getScreenSize (HeadlessToolkit.java:284) adresinde java.awt.HeadlessException hatasıyla krom kapı kapsayıcısı durumunda başarısız olur. Bu sorunla daha önce karşılaştınız mı?
vikramvi

Driver.Manage () ile denedim Window.Maximize (); Selenium WebDriver C # üzerinde FF'de ve iyi çalıştı. Henüz Chrome ile denemedim.
Ripon Al Wasim

Bu benim için çalıştı ama driver.manage().window().setPosition(new Point(0,0));son satırdan önce eklemek zorunda kaldım yoksa pencere doğru konumda olmazdı.
swanhella

swanhella: Bunu paylaştığınız için teşekkürler
Ripon Al Wasim

8

Chrome Sürücüsünü kullanıyorsanız, yetenekleri ayarlayabilirsiniz.

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);

7

Sadece Window.Maximize()komutu kullanın

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

6

Aşağıdaki Selenium Java kod parçacığı benim için çalıştı:

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

Java için:

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

IE, Mozilla, Chrome'da çalışacak


Aynısını AndroidDriver () için nasıl ayarlayabilirim;
Karthick

5

Aynı sorunu yaşadım, ancak aşağıdaki kod kullanılarak sorun çözülebilir.

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

4

C # için:

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

Java için:

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

4

Yeni sürücü kitaplıklarında hata gözlemledik. Yeni tarayıcı sürümlerini işleyebilen biraz eski kavanozları kullanabilirsiniz.

Ana genel seçenek şudur: -

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

Tarayıcı penceresini büyütmek için başka bir seçenek de kullanabilirsiniz.

Misal:-

Aşağıdaki seçeneği ekleyin ve sürücüye iletin: -

    chromeOptions.addArguments("--start-maximized");

Kodun tamamı aşağıdaki gibi görünecektir: -

System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);

VEYA

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

Bunu safaride deneyin: -

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

Jim'in kodunu kullandım, ancak tarayıcıyı büyütmek için WatiN ve C # ile kullanmak için biraz değiştirdim.


2

Selenium Emulation'ı WebDriver'da kullanabilirsiniz :

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

1
Webdriver'ın C # sürümünde Selenium Emülasyonu yoktur. En azından henüz 2.0a4'te değil (yeni bir sürüm yayınladıklarını henüz kontrol etmediklerini gördüm). Ancak yukarıdaki javascript kodu harika çalışıyor.
Reflü

Ayrıca iPhoneDriver'ı da desteklemiyor, örneğin
Iulius Curt

Maalesef WebDriverBackedSelenium.windowMaximize (), Firefox 7 veya Chrome 14'te çalışmaz (IE8'de çalışmasına rağmen). Perde arkasında bir window.resize () Javascript komutu yayınlar, ancak bu iki tarayıcı da bunu görmezden gelir. @ joey-v'nin çözümü Chrome için çalışıyor. Ve Luke Inman-Semerau burada bir çözüm yayınladı ;
Andrew Newdigate

2

Bu çözümü kullandım

            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

Python'da pencereyi büyütmek için kullanabileceğiniz window_maximize () bir işlev vardır. Ben de bunu böyle kullanıyorum.Umarım bu yardımcı olur -

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

C # istemci sürücüleri:

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

===> ayrıca "System.Windows.Forms" .NET derlemesine bir başvuru ekleyin

... tek sorun doğru konumlandırılmamış olmasıdır
... lütfen bunu düzeltebilirseniz yorum yapın


1

İşte benim için C # 'da işe yarayan şey, firefoxDriver sınıf için geneldir:

kullanımlarda:

using System.Drawing;
using System.Windows.Forms;

kodda:

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

Webdriverjs (node.js) için aşağıdaki, krom penceresini büyütür.

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

Bu seçenek benim için uygun:

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

Bu seçenek tüm işletim sistemlerinde çalışır.


1

Aşağıdaki kod satırı, IE, Chrome ve Mozilla'yı maksimize edecektir.

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

Gönderide belirtilen yukarıdaki kod satırı ve diğer geçici çözümler NodeWebKit tarayıcısı için işe yaramadı, bu nedenle geçici bir çözüm olarak aşağıda belirtildiği gibi yerel C # kodunu kullanmak zorunda kaldım:

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

Bu nedenle, bu geçici çözüm temelde "ALT + BOŞLUK" u kullanarak seçeneklerden "MAKSİMUMA ÇIKAR" seçeneğini seçmek üzere tarayıcı eylem menüsünü açar ve "ENTER" tuşuna basar


0

Aşağıdaki kod aracılığıyla pencereyi büyütebiliyorum,

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

0

Bu benim için iyi çalışıyor.

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

0

Yukarıdaki cevapların çoğunu denedim ama hiçbiri iyi sonuç vermedi. Chrome sürücü sürümüm 2.7 ve selenium-java vesion kullanan Iam 2.9.0. Resmi belge şunları kullanmanızı önerir:

var capabilities = new DesiredCapabilities();
var switches = new List<string>
                       {
                           "--start-maximized"
                       };
capabilities.SetCapability("chrome.switches", switches);    
new ChromeDriver(chromedriver_path, capabilities);

Yukarıdakiler de çalışmıyor. Chrome sürücüsünü kontrol ettim JsonWireProtocol: http://code.google.com/p/selenium/wiki/JsonWireProtocol

Chrome diver protokolü, pencereyi büyütmek için bir yöntem sağlar:

/session/:sessionId/window/:windowHandle/maximize,

ancak bu komut selenyum-java'da kullanılmaz. Bu, komutu Chrome'a ​​kendiniz de gönderdiğiniz anlamına gelir. Bunu yaptıktan sonra işe yarıyor.


0

Chrome sürücüsü zaten şunları destekliyor:

Java:

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

0

Benim için, Selenium Web Driver C # + Chrome ile çalışırken yukarıdaki çözümlerden hiçbiri işe yaramadı:

  • window.resizeTo (1024, 768); - Tüm ekranı kullanmak istiyorum
  • --start-maximized - yok sayılır
  • . driver.manage () pencere () (en üst düzeye çıkarmak.); - çalışmıyor çünkü bazı uzantılara ihtiyaç duyuyor ve Chrome uzantılarını kullanmama izin verilmiyor

InputSimulator kullanarak çalıştırmayı başardım :

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

0

Chrome penceresini büyütmek için bu kodla deneyebilirsiniz.

ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");

WebDriver driver = new ChromeDriver(options);

Yalnızca kod yanıtları vermek kabul edilebilir olsa da, kodun bir açıklamasını da sunabilir ve insanların sorunun neden ele alındığını anlamalarına yardımcı olabilirseniz, genellikle topluluk için daha yararlıdır. Bu genellikle takip sorularının miktarını azaltır ve yeni geliştiricilerin temel kavramları anlamasına gerçekten yardımcı olabilir. Zaten 27 yanıtın olduğu burada bu özellikle önemlidir; Yaklaşımınızı mevcut cevaplardan ayıran şeyin ne olduğunu açıklamaya değer. Sorunuzu ek ayrıntılarla günceller misiniz?
Jeremy Caney
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.