我们项目的页面有一个下拉列表,但不是select类型,无法通过封装称Select来操作。看了很多文章都写通过js代码driver.execute_script("window.scrollTo(0,10000)")可以实现滚动,但我怎么试都不行,就选择换一种思路,通过键盘向下键来代替鼠标滚动
我们项目的下拉列表是ul类型,列表中的值是li类型
在页面上点击这个标注文字时在下方出现下拉框,我先用截图工具截取图中红线区域,计算从该按钮中心移动到右侧下拉滚动条的像素距离,然后用move_to_element_with_offset方法将鼠标移动到进度条上,单击进度条后,再用键盘事件send_keys(Keys.DOWN)的向下键即可实现下拉列表向下滚动
代码参考文章来源:https://www.toymoban.com/news/detail-721152.html
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)
文章来源地址https://www.toymoban.com/news/detail-721152.html
到了这里,关于python+selenium下拉列表,滚动条操作失效时,用键盘向下键代替的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!