Programing

Selenium WebDriver에서 브라우저 너비와 높이를 어떻게 설정합니까?

lottogame 2020. 12. 5. 09:11
반응형

Selenium WebDriver에서 브라우저 너비와 높이를 어떻게 설정합니까?


Python 용 Selenium WebDriver를 사용하고 있습니다. 특정 너비와 높이로 브라우저를 인스턴스화하고 싶습니다. 지금까지 내가 얻을 수있는 가장 가까운 것은 :

driver = webdriver.Firefox()
driver.set_window_size(1080,800)

어느 것이 작동하지만 브라우저 크기를 만든 후 설정하고 인스턴스화시 설정하고 싶습니다. 나는 다음과 같은 접근 방식이 있다고 생각합니다.

profile = webdriver.FirefoxProfile();
profile.set_preference(foo, 1080)
driver = webdriver.Firefox(profile)

그러나 나는 무엇이 foo될지 모르고 문서가 어디에 있는지 알 수 없습니다.

Q1 : 인스턴스화 할 때 너비 / 높이를 설정하는 방법이 있습니까?

Q2 :에서 사용할 수있는 모든 키를 나열하는 참조 문서는 어디에 있습니까 profile.set_preference?


Selenium 2.48.0을 사용하여 Python에서 수행하는 방법은 다음과 같습니다.

from selenium.webdriver import Firefox
driver = Firefox()
driver.set_window_position(0, 0)
driver.set_window_size(1024, 768)

나를 위해 OS X 10.9의 Java 7에서 작동하는 유일한 것은 다음과 같습니다.

// driver = new RemoteWebDriver(new URL(grid), capability);
driver.manage().window().setPosition(new Point(0,0));
driver.manage().window().setSize(new Dimension(1024,768));

1024너비와 768높이는 어디에 있습니까 ?


다음과 같이 시도하십시오.

IWebDriver _driver = new FirefoxDriver();
_driver.Manage().Window.Position = new Point(0, 0);
_driver.Manage().Window.Size = new Size(1024, 768);

시작 후 크기가 조정되는지 확실하지 않으므로 원하는 것이 아닐 수도 있습니다.


크롬을 사용하는 경우

 chrome_options = Options()
 chrome_options.add_argument("--start-maximized");
 chrome_options.add_argument("--window-position=1367,0");
 if mobile_emulation :
     chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)

  self.driver = webdriver.Chrome('/path/to/chromedriver', 
                                  chrome_options = chrome_options)

이로 인해 브라우저가 성가신 깜박임이나 화면 이동없이 두 번째 모니터에서 시작됩니다.


이것은 headless헤드리스가 아닌 경우 모두 작동하며 다음 이후에 설정하는 대신 지정된 크기로 창을 시작합니다.

from selenium.webdriver import Firefox, FirefoxOptions

opts = FirefoxOptions()
opts.add_argument("--width=2560")
opts.add_argument("--height=1440")

driver = Firefox(options=opts)

다음은 python selenium 2.31.0 firefox_profile.py의 firefox 프로필 기본 설정입니다.

모든 환경 설정을 보려면 firefox 주소 표시 줄에 "about : config"를 입력합니다.

about : config의 항목 참조 : http://kb.mozillazine.org/About:config_entries

DEFAULT_PREFERENCES = {
    "app.update.auto": "false",
    "app.update.enabled": "false",
    "browser.download.manager.showWhenStarting": "false",
    "browser.EULA.override": "true",
    "browser.EULA.3.accepted": "true",
    "browser.link.open_external": "2",
    "browser.link.open_newwindow": "2",
    "browser.offline": "false",
    "browser.safebrowsing.enabled": "false",
    "browser.search.update": "false",
    "extensions.blocklist.enabled": "false",
    "browser.sessionstore.resume_from_crash": "false",
    "browser.shell.checkDefaultBrowser": "false",
    "browser.tabs.warnOnClose": "false",
    "browser.tabs.warnOnOpen": "false",
    "browser.startup.page": "0",
    "browser.safebrowsing.malware.enabled": "false",
    "startup.homepage_welcome_url": "\"about:blank\"",
    "devtools.errorconsole.enabled": "true",
    "dom.disable_open_during_load": "false",
    "extensions.autoDisableScopes" : 10,
    "extensions.logging.enabled": "true",
    "extensions.update.enabled": "false",
    "extensions.update.notifyUser": "false",
    "network.manage-offline-status": "false",
    "network.http.max-connections-per-server": "10",
    "network.http.phishy-userpass-length": "255",
    "offline-apps.allow_by_default": "true",
    "prompts.tab_modal.enabled": "false",
    "security.fileuri.origin_policy": "3",
    "security.fileuri.strict_origin_policy": "false",
    "security.warn_entering_secure": "false",
    "security.warn_entering_secure.show_once": "false",
    "security.warn_entering_weak": "false",
    "security.warn_entering_weak.show_once": "false",
    "security.warn_leaving_secure": "false",
    "security.warn_leaving_secure.show_once": "false",
    "security.warn_submit_insecure": "false",
    "security.warn_viewing_mixed": "false",
    "security.warn_viewing_mixed.show_once": "false",
    "signon.rememberSignons": "false",
    "toolkit.networkmanager.disable": "true",
    "toolkit.telemetry.enabled": "false",
    "toolkit.telemetry.prompted": "2",
    "toolkit.telemetry.rejected": "true",
    "javascript.options.showInConsole": "true",
    "browser.dom.window.dump.enabled": "true",
    "webdriver_accept_untrusted_certs": "true",
    "webdriver_enable_native_events": "true",
    "webdriver_assume_untrusted_issuer": "true",
    "dom.max_script_run_time": "30",
    }

그것은 간단합니다. 다음은 전체 코드입니다.

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("Your URL")
driver.set_window_size(480, 320)

크롬 드라이버가 시스템 경로에 있는지 확인하십시오.


profile = webdriver.FirefoxProfile()
profile.set_preference('browser.window.width',0)
profile.set_preference('browser.window.height',0)
profile.update_preferences()

이 코드를 테스트 코드의 설정 부분에서 다음 webdriver.Firefox()앞에 작성하십시오 .

참고URL : https://stackoverflow.com/questions/15397483/how-do-i-set-browser-width-and-height-in-selenium-webdriver

반응형