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

Selenium Firefox WebDrive,使用Python在div中滚动

顾靖
2023-03-14
问题内容

我已经使用python一段时间了,我想保存需要事先登录的特定网页。由于此网站使用javascript,因此我决定将selenium用于Firefox和webfox。我能够登录。但是该站点要求我必须接受EULA,然后才能访问所需页面。

问题是我必须向下滚动整个文本(使用单独的div滚动条),然后才能单击接受。我对Selenium和javascript完全陌生。

提供的用户名和密码有效,一旦找到解决方案,我将对其进行更改。

dr = webdriver.Firefox()
dr.get("https://freida.ama-assn.org/Freida/user/programDetails.do?pgmNumber=1401611114")
dr.find_element_by_id("go_username").clear()
dr.find_element_by_id("go_username").send_keys("hajayd")
dr.find_element_by_id("go_password").clear()
dr.find_element_by_id("go_password").send_keys("123456")
dr.find_element_by_id("Image1").click()

dr.get("https://freida.ama-assn.org/Freida/eula.do")
# code to scroll down eula here
dr.find_element_by_id("agreeBtn").click()

dr.get("https://freida.ama-assn.org/Freida/user/programDetails.do?pgmNumber=1401611114")
# Final page I want to visit

可能吗?还有其他可接受的解决方案吗?


问题答案:

您可以WebDriver.execute_script用来执行javascript:

eula = dr.find_element_by_id('eulaFrame')
dr.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', eula)

eula传递给javascript的参数(在上面的示例中)可以使用进行访问arguments[..]

旁注:如果return在javascript代码中使用,则该值可用作的返回值execute_script



 类似资料:
  • 问题内容: 我有一个部门想要显示图像,然后单击以在灯箱中打开它们。我将它们向左浮动并在线显示它们。设置overflow- x进行滚动,但是一旦行空间不足,它仍然会将图像放在下面。我想让它们内联,并在需要时显示水平滚动。 注意: 我无法更改内部图像的结构。它必须是锚点内的img。我的灯箱就这样要求它。 HTML: CSS: 我知道这是非常基本的,但是我做不到。不知道怎么了 问题答案: HTML中可能

  • 我有以下布局:- 我试图实现这一点,当我滚动时,一旦侧红色div到达顶部,它们就固定在那个位置,从那里绿色div可以滚动更多(基本上,我想让我的红色div总是在框架中)。 我使用flex对齐了3个分区:- 以下是我的HTML:- 以下是我的css:- 以下是我的JS:- 有人能帮我吗?红色div应该被固定,一旦他们到达顶部,中心div应该是可滚动的。

  • 问题内容: 这个 提供了一个用户可以水平和垂直滚动的功能。如何更改它以便div 仅 可垂直滚动? 问题答案: 除了使用错误的属性外,还可以解决它。滚动条可与任何财产被触发,或者每个人都可以被设置为任意的,,,,或。您当前正在查看以下两个: -此值将查看盒子的宽度和高度。如果已定义它们,则不会使框扩展到这些边界之外。而是(如果内容超出了这些边界),它将为超出其长度的任意一个边界(或两个边界)创建一个

  • 我想要中心的div水平与一个选项滚动使用CSS。我怎样才能做到呢?我看到了一个解决方案使用边距自动和最大宽度,但div将被削减,所以我没有这样做。 null null

  • 问题内容: 这个 给出了一个用户可以水平和垂直滚动的功能。如何更改它以便div 仅 可垂直滚动? 问题答案: 除了使用错误的属性外,还可以解决它。滚动条可与任何财产被触发,或者每个人都可以被设置为任意的,,,,或。您目前正在查看以下两个: -此值将查看盒子的宽度和高度。如果已定义它们,则不会使框扩展到这些边界之外。而是(如果内容超出了这些边界),它将为超出其长度的任意一个边界(或两个边界)创建一个

  • 问题内容: 我有一个使用overflow:auto的div,它在调整大小并在页面中拖动时将内容保留在div中。我正在使用一些Ajax从服务器中检索文本行,然后将它们附加到div的末尾,因此内容正在向下增长。每次发生这种情况时,我都希望使用JS将div滚动到底部,以便可以看到最新添加的内容,类似于聊天室或命令行控制台的工作方式。 到目前为止,我一直在使用此代码段执行此操作(我也在使用jQuery,因