selenium python中的鼠标滚动模拟

2024-09-29 05:15:03 发布

您现在位置:Python中文网/ 问答频道 /正文

当取消一个网站,我不得不滚动一个由许多div'组成的表。 我用下面的代码把滚动条移到最后

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之外,有没有其他方法来减慢速度(它可以模拟鼠标功能,但我必须实际地将光标放在网页上)

向下滚动时,它会加载更多的表项。我也尝试过使用drag-n-drop-by-offset,但滚动条不移动,它抛出MoveTargetOutOfBoundsException


Tags: 代码divsourceby网站driverelement鼠标
1条回答
网友
1楼 · 发布于 2024-09-29 05:15:03

如果知道元素的位置,那么可以使用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

相关问题 更多 >