Gen*_*mes 5 python selenium selenium-chromedriver selenium-webdriver
使用 Python Selenium 调用简单的滚动操作不起作用:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
time.sleep(2)
actions = ActionChains(driver)
actions.move_by_offset(500, 500).perform()
Run Code Online (Sandbox Code Playgroud)
例如移动到元素的功能,可以正常工作并且可以滚动:
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()
Run Code Online (Sandbox Code Playgroud)
调用移动到具有偏移量的元素,不再起作用:
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()
Run Code Online (Sandbox Code Playgroud)
有什么原因吗?
似乎move_by_offset无法滚动页面,但它仍然可以将鼠标移动到距当前鼠标位置的偏移量。
为了确认我们可以尝试这样做:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
actions = ActionChains(driver)
actions.move_by_offset(300, 500).context_click().perform()
Run Code Online (Sandbox Code Playgroud)
要按偏移量滚动页面,我们必须使用 js:
driver = webdriver.Chrome()
driver.get('https://www.wikipedia.org/')
driver.execute_script('window.scrollBy(0, 500)') # x=0, y=500
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9192 次 |
| 最近记录: |