2013-03-13 15 views
46

Używam Selenium WebDriver dla Pythona. Chcę utworzyć instancję przeglądarki o określonej szerokości i wysokości. Dotychczas najbliżej można uzyskać jest:Jak ustawić szerokość i wysokość przeglądarki w Selenium WebDriver?

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

który pracuje, ale ustawia rozmiar przeglądarki po jej utworzeniu, i chcę go ustawić w instancji. Zgaduję, że to podejście wzdłuż linii:

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

Ale ja nie wiem, co foo będzie, i nie mogę dowiedzieć się, gdzie są docs.

Q1: Czy istnieje sposób ustawiania szerokości/wysokości podczas tworzenia?

Q2: Gdzie znajdują się dokumenty referencyjne zawierające listę wszystkich kluczy używanych przez profile.set_preference?

+5

Dlaczego zmiana rozmiaru po utworzeniu jest złą rzeczą? – Arran

+0

Szczerze mówiąc, nie wiem.Ściśle mówiąc, różni się od otwierania okna w określonym rozmiarze (widzę ** różnicę). Nie wiem, czy ta różnica jest niematerialna. Widząc, że to są testy, chciałbym usunąć jak najwięcej niewiadomych. Jeśli ktoś może mi powiedzieć, że to nie robi różnicy, byłbym szczęśliwy. Ale prawdopodobnie będą musieli znać specyfikę mojego testu, aby to zrobić, i chcę to zrobić dla wszystkich przyszłych testów, które piszę. – tom

+2

Zgodziłbym się z Arranem. Nie mogę wymyślić żadnego powodu, dla którego zmiana rozmiaru po utworzeniu spowodowałaby problemy. –

Odpowiedz

15

spróbować czegoś takiego:

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

Nie wiem, czy będzie to zmiana rozmiaru po uruchomiona jest jednak, więc może to nie jest to, co chcesz

+0

Czy to nie jest pyton? –

0

Tu jest firefox domyślny profil prefs z Pythona selenu 2,31. 0 firefox_profile.py

i wpisz "about: config" w firefox pasku adresu, aby zobaczyć wszystkie preferencje

odniesienie do zapisów w about: conf IG: 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", 
    } 
+0

Dzięki. Nie widzę tam ustawień rozmiaru przeglądarki, ale warto mieć listę i link tak samo. – tom

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

napisać ten kod do strony konfiguracji swojego kodu testowego przed: linii webdriver.Firefox().

+0

Nie działa dla Java 7 w systemie OS X 10.9 –

+0

Pytanie dotyczy ustawienia początkowego rozmiaru okna za pomocą ** python ** .... W każdym razie nie działa to przy użyciu Pythona, przynajmniej przy użyciu selenu 2.46.0 i Firefox 38.0.5 –

28

Dla mnie jedyną rzeczą, która pracowała w Javie 7 na OS X 10.9 było to:

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

Gdzie 1024 jest szerokość i 768 jest wysokość.

20

Oto jak to zrobić w Pythonie z selenem 2.48.0:

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

Jeśli używasz chrome

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) 

Spowoduje to uruchomienie przeglądarki na drugim monitorze bez wszelkie irytujące migotanie lub ruchy na ekranie.

1

To proste. Oto pełny kod.

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

Upewnij kierowca chrom jest w ścieżce systemowej.

Powiązane problemy