MicroProger
@MicroProger
Работает - не трогай

Message: move target out of bounds: viewport size: 452, 362 (Session info: MicrosoftEdge=121.0.2277.128). Что делать?

driver.get("https://paintonline.editaraudio.com/en/")
            actions = ActionChains(driver)
            time.sleep(3)
            actions.move_by_offset(250, 250)
            actions.click()
            actions.perform()
            actions.reset_actions()
            for i in matrica:
                for gr in i:
                    print(gr)
                    actions.move_by_offset(gr[0], gr[1]).click().perform()
                    actions.reset_actions()

Нажатие на точку (250, 250) получается :(
Matrica содержит в себе кубическую матрицу.
[[[x, y], [x, y], [x, y], [x, y], [x, y], [x, y], [x, y]], [[x, y], [x, y], [x, y], [x, y], [x, y], [x, y], [x, y]], [[x, y], [x, y], [x, y], [x, y], [x, y], [x, y], [x, y]]]

Эта матрица представляет из себя координаты экрана, на которые необходимо нажать. В примере выше, получается следующая ошибка:
Message: move target out of bounds: viewport size: 452, 362
  (Session info: MicrosoftEdge=121.0.2277.128)


Настройки драйвера:
edge_options = EdgeOptions()
edge_options.use_chromium = True 
edge_options.add_argument("--start-maximized")
edge_options.add_argument("--disable-dev-shm-usage")
edge_options.add_argument("--no-sandbox") 
edge_options.add_argument("--remote-debugging-port=9222") 
edge_options.add_argument('--log-level=3')
if not test_edge:
        edge_options.add_argument("headless")
        edge_options.add_argument("disable-gpu")
driver = Edge(options=edge_options, executable_path = os.getcwd() + "\\msedgedriver.exe")
driver.set_window_size(500, 500)
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Message: move target out of bounds: viewport size: 452, 362 (Session info: MicrosoftEdge=121.0.2277.128).

Перемещение курсора за область браузера, которая равна "viewport size: 452, 362" (даже если Вы там и выставили "driver.set_window_size(500, 500)").
move_by_offset

viewport size: 452, 362

Это относительное смещение от текущего положения курсора, т.е. 250 * 2 итерации (или 1 дополнительную) = 500, минус возможные границы или элементы браузера и вот, у Вас уже не хватает области браузера.

Я использую не относительные координаты (move_by_offset), а абсолютные move_to_element_with_offset.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы