selenium.模拟拖动滚动条下拉(实现页面滚动)

本文介绍了使用Python的Selenium库模拟操作页面滚动条的四种方法,包括使用JavaScript脚本直接设置滚动位置、拖动到指定元素、发送Tab键切换以及滚动到特定坐标。这些技巧适用于UI自动化测试,帮助定位并操作页面上的不同模块。

UI自动化实现,有时候需要滑动滚动条,定位到某个模块进行操作
在python中有以下几种方法可以实现

方法一:使用js脚本直接操作

js=“var q=document.getElementById(‘id’).scrollTop=10000”
driver.execute_script(js)
或者:
js=“var q=document.documentElement.scrollTop=10000”
driver.execute_script(js)

这里的id为滚动条的id,但js中没有xpath的方法,所以滚动条没有id的网页此方法不适用


方法二:使用js脚本拖动到指定地方

当前使用xpath元素定位,也可以使用八大定位元素:
参考:https://blog.youkuaiyun.com/Ben_zhangxw/article/details/115692695?spm=1001.2014.3001.5501

target = self.driver.find_element_by_xpath("//div[1]/div/div[2]/div[1]/section/div[1]/div[2]/div[2]/div[1]")
self.driver.execute_script(“arguments[0].scrollIntoView();”, target)

这个方法可以将滚动条拖动到目标元素位置,个人使用比较多(如果报错,注意修改中、英文标点符号)
**注:**不过如果页面元素发生改变,可能会因为找不到该元素而导致报错


方法三:根据页面显示进行变通,发送tab键

在本例中的页面中,密码是输入框,正常手工操作时,可以通过tab键会切换到密码框中,所以根据此思路,在python中也可以发送tab键来切换,使元素显示

from selenium.webdriver.common.keys

在Python中使用Selenium选中滚动条并进行拖动,有以下两种常见的方法: ### 使用键盘按键操作 可以使用`Keys.PAGE_UP`和`Keys.PAGE_DOWN`等按键来模拟滚动条拖动,示例代码如下: ```python from selenium import webdriver import time from selenium.webdriver.common.keys import Keys # 访问百度 driver = webdriver.Chrome() driver.get("http://www.baidu.com") # 搜索 driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() time.sleep(3) # 通过按Page Down键将页面滚动条向下拖动 driver.find_element_by_xpath("//*[@id='page']/a[10]").send_keys(Keys.PAGE_DOWN) print('将滚动条向下拖动') time.sleep(2) # 通过按Page Up键将页面滚动条向上拖动 driver.find_element_by_xpath("//*[@id='s_tab']/a[9]").send_keys(Keys.PAGE_UP) print('将滚动条向上拖动') time.sleep(2) ``` 这种方法利用了键盘的Page Up和Page Down按键,实现滚动条的上下拖动,使用较为灵活方便 [^1]。 ### 使用JavaScript脚本 可以通过执行JavaScript脚本来控制滚动条的位置,示例代码如下: ```python from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from time import sleep driver = webdriver.Chrome() driver.get("https://www.baidu.com") driver.maximize_window() # 搜索selenium driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() # 等待元素可见 WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="5"]/h3/a'))) # 将滚动条下拉至最低 js = "var q=document.documentElement.scrollTop=10000" driver.execute_script(js) ``` 此方法通过执行JavaScript脚本,直接设置滚动条的位置,将滚动条下拉至指定位置 [^2]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大城市的小人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值