Python + Selenium ActionChain drag_and_drop не работает на Chorme + MacOS - PullRequest
0 голосов
/ 12 марта 2019

Я пытался использовать селен для прохождения проверки блока слайдера на веб-сайте (это не мой взлом, мой сайт не беспокоит)

но почему-то функция drag_and_drop не может поднять выбранный мной блок.

HTML-код блока:

<div class="h-slider-block" style="margin-left: 0px;"></div>

и когда блок перетаскивается в крайнее правое положение, это будет:

<div class="h-slider-block" style="margin-left: 394px;"></div>

и код, который я использовал для перетаскивания:

knob = browser.find_element_by_class_name('h-slider-block')
# ActionChains(browser).drag_and_drop_by_offset(knob, offset, 0).perform()
ActionChains(browser).click_and_hold(knob).move_by_offset(offset, 0).pause(0.5).release().perform()

offset установлен на 394.

код работает нормально, но когда я наблюдаю за браузером, никаких действий не предпринимается. Я попробовал обе комбинации выше, но ни одна из них не работает. Любая идея?

Обновление:

Версия браузера Chrome: 72.0.3626.121 (официальная сборка) (64-разрядная версия)

ChromeDriver Версия: 2.46

macOS Мохаве 10.14.3

1 Ответ

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

Мне любопытно, почему вы используете driver здесь

knob = driver.find_element_by_class_name('h-slider-block')

и browser здесь.

ActionChains(browser).click_and_hold(knob).move_by_offset(offset, 0).pause(0.5).release().perform()

Я не знаю, как ваши browser и/ или driver определены, но имеет ли значение, если вы просто замените browser на driver в ваших ActionChains?

ActionChains(driver).click_and_hold(knob).move_by_offset(offset, 0).pause(0.5).release().perform()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...