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.