使用 Python Selenium 调用简单的滚动操作不起作用:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
time.sleep(2)
actions = ActionChains(driver)
actions.move_by_offset(500, 500).perform()
例如移动到元素的功能,有效 确定并执行滚动:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
time.sleep(2)
element = driver.find_element_by_css_selector(<Something>)
actions = ActionChains(driver)
actions.move_to_element(element).perform()
调用移动到具有偏移量的元素,再次不起作用:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
time.sleep(2)
element = driver.find_element_by_css_selector(<Something>)
actions = ActionChains(driver)
actions.move_to_element_with_offset(element, 500, 500).perform()
有什么原因吗?
最佳答案
move_by_offset
似乎无法滚动页面,但它仍然可以将鼠标移动到当前鼠标位置的偏移量。
为了确认我们可以尝试这样做:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
actions = ActionChains(driver)
actions.move_by_offset(300, 500).context_click().perform()
要按偏移量滚动页面,我们必须使用 js:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
driver.execute_script('window.scrollBy(0, 500)') # x=0, y=500
关于Python Selenium `move_by_offset` 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52433411/