Измените размер окна браузера Selenium для эмуляции экрана телефона

#python #selenium

#python #selenium

Вопрос:

Я хочу иметь возможность изменять размер окна браузера Selenium для эмуляции экрана телефона, который достаточно мал (340 695).

Есть ли способ сделать это?

Это то, что у меня есть до сих пор, не повезло:

 from selenium.webdriver.common.keys import Keys
from time import sleep

chromedriver_path = '../chromedriver' # Change this to your own chromedriver path!
webdriver = webdriver.Chrome(executable_path=chromedriver_path)
webdriver.set_window_size(340,695) # Makes the chrome browser, mobile viewport
sleep(2)
webdriver.get('https://www.instagram.com/accounts/login/?source=auth_switcher') # Visit Instagram
  

РЕДАКТИРОВАТЬ: Ответ ниже

 from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains

mobile_emulation = { "deviceName": "Pixel 2" }
opts = webdriver.ChromeOptions()
opts.add_experimental_option("mobileEmulation", mobile_emulation)

driver = webdriver.Chrome(executable_path=r"The path to your web driver",options=opts) #you must enter the path to your driver
  

Ответ №1:

Возможно, использование webdriver в качестве имени переменной для webdriver сбивает с толку. Попробуйте использовать

 driver = webdriver.Chrome(executable_path=chromedriver_path)
  

И затем вы можете изменить размер окна с помощью следующего

 driver.set_window_size(340, 695)
  

Ответ №2:

Сейчас работаю над проектом, поэтому должен был найти способ сделать это. Разумное решение для изменения размера окна в соответствии с размером экрана устройства:

 driver.get("https://google.com") #Can be any website.
google_html = driver.find_element(By.TAG_NAME, "html")
width = google_html.value_of_css_property("width").rstrip("px")
height = google_html.value_of_css_property("height").rstrip("px")
driver.set_window_size(width, height)