C #을 사용하여 Selenium WebDriver (Selenium 2)에서 브라우저 창을 최대화하는 방법은 무엇입니까?


답변:


38

http://code.google.com/p/selenium/issues/detail?id=174에서 추적 할 수있는 WebDriver에이 기능을 추가하는 데있어 현저한 문제가 있습니다 .

해결 방법은 다음을 사용하는 것입니다 JavascriptExector.

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

13
두 가지 : 1) 보이는 것을 신경 쓰면 전체 화면으로 만들기 전에 창을 원점으로 이동하고 싶을 것입니다. 2) 화면 크기가 가변적 인 경우 자바 스크립트 screen객체를 사용하여 런타임에 가져올 수 있습니다 . 이러한 점을 고려하면 자바 스크립트는 아마도 다음과 window.moveTo(0,0); window.resizeTo(screen.width, screen.height);
— 같아야

4
Mac의 Firefox에서는 창을 (0,0)으로 이동하는 데 문제가 있습니다. 헤더 영역을 올바르게 설명하지 않는 것 같습니다. 창을 (0,1)으로 이동하면 실제로는 (0,0)으로 이동하는 것처럼 보이므로 하나의 버그가 다른 버그를 도와줍니다. 이 시점에서 창을 올바르게 최대화 할 수 있습니다.
— nirvdrum

JavascriptExecutor 인스턴스 여야합니다. IJavaScriptExecutor
— TuGordoBello

160

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

이것은 IE와 Firefox에서 작동합니다. 크롬이 작동하지 않습니다. ChromeDriver 프로젝트에이 버그가 제출되었습니다.

한편 크롬의 문제는 Joey V.와 Coder323이 제안한 것을 구현하는 것입니다.

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

1
파이어 폭스를위한이 방법은 작동하는 유일한 방법입니다, 자바 스크립트는 셀레늄 2.21에서 전혀 작동하지 않습니다
— Sam Adamsh

6
대소 문자 구분 Java => driver.manage (). window (). maximize ();
— Janaaaa

AttributeError: 'WebDriver' object has no attribute 'Manage'
— 사용자

잘. 감사합니다 :) 그것은 내 크롬 드라이버에서 작동합니다.
— Xin

Selenium WebDriver 3.3.0과 함께 FF53을 사용하고 있습니다. driver.Manage (). Window.Maximize (); 나를 위해 일
— Ripon Al Wasim

37

IE 및 Firefox의 경우 :

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

Chrome의 경우 :

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

4
C # 이렇습니다. driver.Manage (). Window.Maximize ();
— Chris Hawkes 1

driver.manage (). window (). maximize (); 크롬에서도 작동
— mosaad

고마워 크리스, C #은 대문자 방법이 필요합니다 : this. driver.Manage (). Window.Maximize ();
— LA Guy 88

35

자바

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

파이썬

driver.maximize_window()

루비

@driver.manage.window.maximize

또는

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

또는

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

15

다음과 같은 것을 사용할 수 있습니다 (C #).

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

2
불행히도 ChromeDriver에는 예외가 발생합니다. IE와 Firefox에서는 잘 작동합니다.
— Bryan Allred

이 코드를 Selenium C #과 함께 사용하면 ChromeDriver가 Google에서 제공되므로 셀레늄 3 용이므로 이제 잘 작동합니다. 또는 최대화 기능을 사용하거나 옵션을 통해 다음 인수를 추가 할 수도 있습니다. "--start-maximized"
— user1841243

15

테스트 단계 / 시나리오 :
1. 브라우저를 열고 TestURL로 이동합니다
. 2. 브라우저 최대화

C # (. NET)으로 브라우저를 최대화하십시오.

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

Java를 사용하여 브라우저를 최대화하십시오.

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

Java와 관련된 또 다른 방법 :

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

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

sun.awt.HeadlessToolkit.getScreenSize (HeadlessToolkit.java:284)에서 java.awt.HeadlessException 오류가 발생하는 크롬 도커 컨테이너의 경우 실패합니다. 전에이 문제가 발생 했습니까?
— vikramvi

driver.Manage (). Window.Maximize ()로 시도했습니다. FF의 Selenium WebDriver C #에서 잘 작동했습니다. 아직 Chrome을 사용하지 않았습니다.
— Ripon Al Wasim

이것은 나를 위해 일했지만 driver.manage().window().setPosition(new Point(0,0));마지막 줄 앞에 추가 해야했습니다. 그렇지 않으면 창이 올바른 위치에 있지 않습니다.
— swanhella 2016 년

swanhella : 이것을 공유해 주셔서 감사합니다
— Ripon Al Wasim

8

Chrome 드라이버를 사용하는 경우 기능을 설정할 수 있습니다

    var capabilities = new DesiredCapabilities();

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

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

    new ChromeDriver(chromedriver_path, capabilities);

7

단순히 Window.Maximize()명령을 사용하십시오

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

6

다음 Selenium Java 코드 스 니펫이 저에게 효과적이었습니다.

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의 경우 :

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

IE, Mozilla, Chrome에서 작동합니다.


AndroidDriver ()에 대해 어떻게 동일하게 설정할 수 있습니까?
— Karthick

5

나는 같은 문제가 있었지만 다음 코드를 사용하여 문제를 해결할 수 있습니다.

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


4

새로운 드라이버 라이브러리에서 버그가 발견되었습니다. 새로운 브라우저 버전을 처리 할 수있는 약간 오래된 항아리를 사용할 수 있습니다.

주요 일반 옵션은 다음과 같습니다.

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

브라우저 창을 최대화하기 위해 다른 옵션을 사용할 수도 있습니다.

예:-

아래 옵션을 추가하고 드라이버로 전달하십시오.

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

전체 코드는 다음과 같습니다.

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

또는

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

사파리에서 이것을보십시오 :-

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의 코드를 사용했지만 브라우저를 최대화하기 위해 WatiN 및 C #과 함께 사용하도록 약간 수정되었습니다.


2

WebDriver에서 Selenium Emulation 을 사용할 수 있습니다 .

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

1
C # 버전의 웹 드라이버에는 셀레늄 에뮬레이션이 없습니다. 적어도 2.0a4에서는 아직 (아직 새 버전을 출시했지만 아직 확인하지는 않았습니다). 그러나 위의 자바 스크립트 코드는 훌륭하게 작동합니다.
— Reflux

그리고 그것은 또한 예를 들어 iPhoneDriver를 지원하지 않습니다
— Iulius Curt

불행히도 WebDriverBackedSelenium.windowMaximize ()는 Firefox 7 또는 Chrome 14에서 작동하지 않습니다 (IE8에서는 작동하지만). 배후에서 window.resize () Javascript 명령을 실행하지만 두 브라우저 모두이 명령을 무시합니다. @ joey-v의 솔루션은 Chrome에서 작동합니다. 그리고 Luke Inman-Semerau는 여기 에 해결책을 게시했습니다 .
— Andrew Newdigate

2

이 솔루션을 사용했습니다

            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

파이썬에서 window_maximize () 인 창을 최대화하는 데 사용할 수있는 함수가 있습니다. 그리고 이것이 내가 사용하는 방법입니다.

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 # 클라이언트 드라이버 :

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

===> .NET 어셈블리 "System.Windows.Forms"에 대한 참조 추가

... 유일한 문제는 올바르게 배치되지 않았다는 것입니다
... 이 문제를 해결할 수 있다면 의견을 말하십시오


1

C #에서 저에게 도움이 된 것은 다음과 같습니다.

사용에서 :

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

코드에서 :

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)의 경우 다음은 크롬 창을 최대화합니다.

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

이 옵션은 저에게 좋습니다 :

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

이 옵션은 모든 OS에서 작동합니다.


1

아래 코드 줄은 IE, Chrome 및 Mozilla를 최대화합니다.

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

게시물에 언급 된 위의 코드 줄과 다른 해결 방법은 NodeWebKit 브라우저에서 작동하지 않았으므로 해결 방법으로 아래에서 언급 한 것처럼 네이티브 C # 코드를 사용해야했습니다.

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

따라서이 대안은 기본적으로 "ALT + SPACE"를 사용하여 옵션에서 "MAXIMIZE"를 선택하고 "ENTER"를 누르는 브라우저 작업 메뉴를 불러옵니다.


0

아래 코드를 통해 창을 최대화 할 수 있습니다.

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

0

이것은 나를 위해 잘 작동합니다.

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

0

위의 많은 답변을 시도했지만 아무것도 잘 작동하지 않습니다. 내 크롬 드라이버 버전은 2.7이고 셀레늄 자바를 사용하는 Iam은 2.9.0입니다. 공식 문서는 다음을 사용하도록 제안합니다.

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

위도 작동하지 않습니다. 크롬 드라이버를 확인했습니다 JsonWireProtocol: http://code.google.com/p/selenium/wiki/JsonWireProtocol

크롬 다이버 프로토콜은 창을 최대화하는 방법을 제공합니다.

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

그러나이 명령은 selenium-java에서 사용되지 않습니다. 즉, 크롬으로 명령을 보냅니다. 내가 이것을하면 작동합니다.


0

Chrome 드라이버는 이미 다음을 지원합니다.

자바:

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

0

나에게 Selenium Web Driver C # + Chrome을 사용할 때 위의 솔루션 중 어느 것도 효과가 없었습니다.

  • window.resizeTo (1024, 768); -전체 화면을 사용하고 싶습니다
  • --start-maximized -무시된다
  • driver.manage (). window (). maximize (); -확장 기능이 필요하고 Chrome 확장 프로그램을 사용할 수 없으므로 작동하지 않습니다.

InputSimulator를 사용하여 작동하게 했습니다 .

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

0

이 코드를 사용하여 크롬 창을 최대화 할 수 있습니다.

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

WebDriver driver = new ChromeDriver(options);

코드 전용 답변을 제공하는 것이 허용되지만 코드에 대한 설명을 제공하고 사람들이 문제를 해결하는 이유를 사람들이 이해할 수 있도록 도와주는 경우 커뮤니티에 더 유용합니다. 이는 종종 후속 질문의 양을 줄이고 새로운 개발자가 기본 개념을 이해하는 데 실제로 도움이 될 수 있습니다. 이미 27 개의 다른 답변이있는 곳에서 특히 중요합니다. 기존 답변과 다른 접근법을 설정하는 것이 좋습니다. 추가 세부 사항으로 질문을 업데이트 하시겠습니까?
— Jeremy Caney
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.