Как установить размер окна в Selenium Chrome Python - PullRequest
1 голос
/ 06 марта 2019

Следующий код для изменения размера окна Chrome Селен не работает:

driver.set_window_size(1920, 1080)
time.sleep(5)
size = driver.get_window_size()
print("Window size: width = {}px, height = {}px.".format(size["width"], size["height"]))

Из которого вывод:

Window size: width = 1044px, height = 788px

Я также пытался использовать параметры для установкиРазмер окна при создании драйвера (и многое другое, см. комментарии ниже), но он также не может заставить его работать:

options.add_argument("--window-size=1920,1080")

Я использую selenium 3.14.0, версия драйвера chrome 72.0.3626.109и запуск в фоновом / безголовом режиме: мне буквально нужно запускать мой код в фоновом режиме, то есть он автоматически запускается в фоновом режиме.Я думаю, что есть небольшая разница между безголовым, который при запуске ассоциируется с конкретным пользователем, и фоновым, который также является безголовым, но не может быть связан с конкретным пользователем и может иметь другие идиосинкразии - я начинаю думать, что это можетбыть частью моей проблемы.

Я бы хотел, чтобы драйвер Chrome работал, потому что Firefox не работает в фоновом режиме (что мне нужно), а это - боль.

Я хочу это выяснить, потому что яя не вижу элемент, который мне нужно щелкнуть, когда окно такое маленькое.

Ответы [ 3 ]

0 голосов
/ 06 марта 2019

Немного неясно, почему и где именно вы застряли.Возможно, дополнительные ., как в height = {}px., создают хаос.Возможно, наряду с аргументом -headless я могу установить / получить браузер Chrome Размер окна следующим образом:

  • Блок кода:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("--headless")
    options.add_argument("window-size=1400,600")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe', service_args=["--log-path=./Logs/DubiousDan.log"])
    driver.get("http://google.com/")
    print ("Headless Chrome Initialized")
    print(driver.get_window_size())
    driver.set_window_size(1920, 1080)
    size = driver.get_window_size()
    print("Window size: width = {}px, height = {}px".format(size["width"], size["height"]))
    driver.quit()
    
  • Выход на консоль:

    Headless Chrome Initialized
    {'width': 1400, 'height': 600}
    Window size: width = 1920px, height = 1080px
    
0 голосов
/ 06 марта 2019

Итак, я наконец выяснил, в чем проблема: Запуск планировщика задач Windows с опцией «запускать, вошел ли пользователь в систему или нет» открывает только небольшой браузер (1024x768), размер которого НЕ МОЖЕТ быть изменен, даже при всех замечательных предложениях.здесь.

См. ту же проблему, решенную здесь: разрешение экрана в режиме «Выполнить, вошел ли пользователь в систему или нет», в планировщике задач Windows

Так что меньше, чемИдеальный обходной путь - запускать только когда пользователь вошел в систему.

Спасибо за вашу помощь!

0 голосов
/ 06 марта 2019

вместо

options.add_argument("--window-size=1920,1080")

Можете ли вы попробовать это.

options.add_argument('window-size=1920x1080');

OR

options.add_argument("--start-maximized")
...