首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >selenium - python中的鼠标滚动模拟

selenium - python中的鼠标滚动模拟
EN

Stack Overflow用户
提问于 2018-07-27 23:05:43
回答 1查看 1.3K关注 0票数 0

当报废一个网站时,我不得不滚动一个由许多div组成的表格。我使用以下代码使滚动条移动到末尾,

代码语言:javascript
复制
source_element = driver.find_element_by_xpath("//div[4]/div/div[103]/div[2]/div[1]/div[2]") ### Scrollbar element

dest_element = driver.find_element_by_xpath("//div[4]/div/div[103]/div[2]/div[1]/div[4]/span") ### ▼ element
ActionChains(driver).drag_and_drop(source_element, dest_element).perform()

但问题是它发生得非常快,表中的数据无法正确加载。我试着用selenium - python函数模拟鼠标滚动,但没能实现。除了使用pynput(它可以模拟鼠标功能,但我必须将光标实际放在网页上),有没有什么办法可以减慢它的速度?

向下滚动时,它会加载更多的表项。我还尝试使用按偏移量拖放,但滚动条不移动,并抛出MoveTargetOutOfBoundsException

EN

回答 1

Stack Overflow用户

发布于 2018-07-28 04:22:04

如果您知道元素的位置,那么可以使用javascript executor滚动到该元素。我不确定是否有其他解决方案来缓慢滚动,但如果您的要求是缓慢滚动加载所有数据,那么您可以尝试滚动到任何元素,等待加载数据,然后滚动到其他元素并重复。

代码语言:javascript
复制
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement scrollto = driver.findElement(By.xpath("//div[4]/div/div[103]/div[2]/div[1]/div[4]/span")); //Find element by xpath and store in variable "Element"     
js.executeScript("arguments[0].scrollIntoView();", scrollto); //This will scroll the page till the element is found
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51560760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档