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

上下滚动以使用Selenium Python使Element进入视图

督灿
2023-03-14
问题内容

我需要能够上下滚动才能找到与Selenium相关的元素。
我已经看到很多问题和答案,发现的主要思想是self.web_driver.execute_script("return arguments[0].scrollIntoView(true);", element),这就是我当前在代码中所拥有的。但这还不够好,因为此代码仅向下滚动,因此如果该元素位于可滚动视图的上部,则无法找到该元素。
因此,我需要一个先向上滚动(向上翻页?),然后开始向下滚动的脚本。
我尝试过这样的事情

self.web_driver.execute_script("return arguments[0].scrollIntoView(true);", element) 
self.web_driver.execute_script("window.scrollTo(0, -document.body.scrollHeight);")
self.web_driver.execute_script("return arguments[0].scrollIntoView(true);", element)

但这不会向上滚动:(


问题答案:

您可以尝试以下代码向上滚动页面:

from selenium.webdriver.common.keys import Keys

self.web_driver.find_element_by_tag_name('body').send_keys(Keys.HOME)

您可以向上滚动到所需元素的另一种方式(首选):

element = self.web_driver.find_element_by_xpath('SOME_XPATH') # you can use ANY way to locate element
coordinates = element.location_once_scrolled_into_view # returns dict of X, Y coordinates
self.web_driver.execute_script('window.scrollTo({}, {});'.format(coordinates['x'], coordinates['y']))


 类似资料:
  • 问题内容: 尝试使用selenium-webdriver python向下滚动到页面底部,以便加载更多产品。 该网页已加载,但没有变化。 我想念什么吗? 问题答案: 您可以尝试以下move_up和move_down函数:

  • 问题内容: 我一直在做一个项目,内容已经完成。但是对于设计,我正在考虑使用视差滚动技术。 但是,我所能找到的全部还是JavaScript或Jquery,而我只精通CSS3。 可以仅使用CSS3(如果需要使用HTML5)而不是使用jquery插件来实现视差滚动吗?如果我能指出一些相同的教程,那就太好了。 注意:这接近于我想要产生的效果 问题答案: 要产生非常基本的视差滚动效果,下面的示例就足够了。

  • 我可以向您展示比告诉您更好的内容,所以这里是我的XML代码的结构: 因此,如您所见,我有一个,其中包含片段并支持滚动。 问题: 我有几个片段,每个片段都有自己的布局,应该在一次放纵中向下滚动。 一切都很完美,一切都可以顺利滚动,但是当我添加一个 并使用 包装它时,它无法正常工作。当我向下滚动时,将手指从屏幕上移开后,它会立即停止。 看看代码: 如果删除,它可以工作。 你知道那可能是什么吗? 谢谢你

  • 仍然像这样显示和隐藏视图: 但如果我必须使用向上滑动和向下滑动动画来显示和隐藏,该怎么办

  • 我目前正在尝试使用selenium和C#单击网页上的一个元素。我需要单击一个基于具有文本'Test App'的子元素的Div元素。 如果以前有人问过类似的问题,我很抱歉,我花了一段时间浏览类似的主题,但没有找到我需要的。如果有人能给我指明正确的方向,我将不胜感激。

  • 问题内容: 有人可以帮助我使用 Java* 使用 WebDriver 自动 向下滚动功能 吗? *** 就我而言,当我垂直向下滚动鼠标时,对于yahoo邮件就会显示( 可见 )。 问题答案: 您可以使用以下代码垂直向下滚动: 同样,也可以通过将y坐标更改为负值来向上滚动: 您还可以使用以下代码: 对于向下滚动: 向上滚动: