我们项目的页面有一个下拉列表,但不是select类型,无法通过封装称Select来操作。看了很多文章都写通过js代码driver.execute_script("window.scrollTo(0,10000)")可以实现滚动,但我怎么试都不行,就选择换一种思路,通过键盘向下键来代替鼠标滚动

我们项目的下拉列表是ul类型,列表中的值是li类型

在页面上点击这个标注文字时在下方出现下拉框,我先用截图工具截取图中红线区域,计算从该按钮中心移动到右侧下拉滚动条的像素距离,然后用move_to_element_with_offset方法将鼠标移动到进度条上,单击进度条后,再用键盘事件send_keys(Keys.DOWN)的向下键即可实现下拉列表向下滚动

 

 代码参考

from selenium.webdriver import Keys

from selenium.webdriver.common.action_chains import ActionChains

def scroll_down(self,element):

#页面定位到标注按钮

tagging_button = self.find_element_by_xpath(element)

#178,100就是上图中红线框的长和宽,将鼠标从标注按钮移到进度条

self.move_to_element_with_offset(tagging_button, 178, 100)

actions = ActionChains(driver)

#点击进度条

actions.click()

i = 0

while i < 8:

#键盘向下一次

actions.send_keys(Keys.DOWN).perform()

i = i + 1

time.sleep(1)

 

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: