当前位置: 首页 > 面试题库 >

使用Selenium滚动到Python页面顶部

强承望
2023-03-14
问题内容

使用Python和Selenium时,我在滚动到网页顶部时遇到问题。

当页面由于某种原因加载时,您将被带到页面底部(这是固定的)。但是,当我尝试滚动到顶部时,它不起作用。

我尝试了以下方法:

self.driver.execute_script("scroll(0, -250);")

self.driver.execute_script("scroll(0, 0);")

我也尝试过找到该元素,然后滚动到它:

self.driver.execute_script("arguments[0].scrollIntoView()", element)

向下滚动到元素时,上面的scrollIntoView()代码适用。但是,它无法向上滚动。

我已经尝试过运行Chrome驱动程序和PhantomJs。

有什么建议?


问题答案:

您可以考虑HTML DOM先将元素定位,然后scroll将元素放入
Viewport
如下:

element = driver.find_element_by_xpath("element_xpath")
self.driver.execute_script("return arguments[0].scrollIntoView(true);", element)


 类似资料:
  • 问题内容: 如何使用JavaScript滚动到页面顶部?即使滚动条立即跳到顶部也是可取的。我不是在寻找平滑的滚动。 问题答案: 如果您不需要更改以进行动画处理,则无需使用任何特殊的插件-我只需要使用本机JavaScript window.scrollTo方法- 传入0,0即可将页面立即滚动到左上角。 参量 x坐标是沿水平轴的像素。 y坐标是沿垂直轴的像素。

  • 问题内容: 有没有一种方法可以使用JavaScript / jQuery控制浏览器滚动? 当我向下滚动页面一半,然后触发重新加载时,我希望页面进入顶部,但它会尝试找到最后一个滚动位置。所以我这样做: 但是没有运气。 编辑 : 因此,当页面加载后,我打电话给您时,您的两个答案都有效。但是,如果我只是在页面上刷新,则看起来浏览器会在事件发生后计算并滚动到其旧的滚动位置(我也测试了body onload

  • 问题内容: 我正在尝试抓取这一(无限)页面(www.mydealz.de),但是我无法让我的网络驱动程序向下滚动页面。我正在使用Python(3.5),Selenium(3.6)和PhantomJS。我已经尝试了几种方法,但是webdriver不会滚动- 它只给我第一页。 第一种方法(常用的滚动方法): 第二种方法(只需按下几次向下键并释放它,也尝试在两次按下之间等待): 第三种方法(在“滚动列表

  • 问题内容: 我正在抓取此网页中的用户名,该用户名在滚动后会加载用户 转到页面的网址:“ http://www.quora.com/Kevin- Rose/followers ” 我知道页面上的用户数量(在这种情况下,编号为43812)如何滚动页面,直到所有用户加载完毕?我在互联网上搜索了相同的代码,到处都可以找到几乎相同的代码行: driver.execute_script(“ window.sc

  • 我正在抓取这个网页的用户名,在滚动后加载用户 指向页面的Url:“http://www.quora.com/Kevin-Rose/followers" 我知道页面上的用户数(本例中的用户数为43812),如何滚动页面直到加载所有用户?我在互联网上搜索过同样的代码,在任何地方我都能找到几乎相同的代码行: driver.execute_script("window.scroll至(0)") 如何确定垂

  • 我正在尝试滚动到一个页面的末尾,这样我就可以使所有的数据可见并提取出来。我试图为它找到一个命令,但它在java(driver.executescript)中可用,但在Python中找不到。现在我正在让电脑按下end键上千次: 我还尝试了,但它会滚动到加载页面的末尾,与end键所做的相同。一旦在页面底部,下一个内容加载。但现在它不再滚动了。 我知道会有一个很好的替代方案。 如何在Python中使用s