PythonSelenium通过xpath定位下拉框,并滚动到页⾯任意位置
Python Selenium通过xpath定位下拉框,并滚动到页⾯任意位置
Python Selenium通过xpath定位⾮select下拉框的⼦选项,并滚动到页⾯任意位置(底部、中间位置、顶部)
第⼀部分:操作下拉框选中⼦选项,⾸先xpath的属性定位没有特殊类别限制,常见的id、name、class,或其他唯⼀标识属性也可⾏;⽽下拉框⼜分select类和⾮select类两种,对于⾮select类,我们可以通过⼆次定位来实现:
# ⾮select下拉框,先到上级相对路径,然后跟上⾃⾝路径,通过//* (⽗级元素) + //*(当前元素)⽅式结合成新的xpath路径,具体如下:
driver.find_element_by_xpath('//div[@id="name"]//a[@href="/a/voucher"]')
如果是select类的下拉框,我们则需要⽤selenium⾃带的select⽅法来处理:
# 1) 导⼊Select类
from selenium.webdriver.support.select import Select
# 2) 定位到的下拉框元素,并传⼊Select类中
selobj = Select(element) 下拉框元素已经定位到
# 3.1) 通过索引选择,index 索引从 0 开始
select_by_index(0) # 定位下拉框第⼀个选项,要选中记得拼接 click()
# 3.2) 通过下拉框选项的属性值选择
jquery滚动条滚动到底部select_by_value(‘name’) # 通过元素的名称属性‘name’定位选项
# 3.3) 通过选项⽂字内容选择
select_by_visible_text(“选项⼀”) 通过选项⽂字内容‘选项⼀’来定位
第⼆部分:下拉页⾯或滚动页⾯到底部,通常有两种⽅式(通过模拟键盘DOWN键下滑的⽅式太笨,这⾥不推荐哈)
1.通过将页⾯定位到要查看元素的具体位置,从⽽变相实现滚动效果,不过要注意,此⽅式需要先引⼊ActionChains库
from selenium.webdriver import ActionChains
ActionChains(driver).move_to_element(‘id=name’).perform()
2.通过执⾏js脚本实现,将页⾯滚动条移动到页⾯任意位置,改变scrollTop的值即可
# 操作到顶部,scrollTop值为0即可
js = "var q=document.documentElement.scrollTop=0"
# 操作到中间位置,scrollTop值设置为中间值,如:50即可
js = "var q=document.documentElement.scrollTop=50"
# 操作到底部,scrollTop值为10000,⼀般页⾯都是底部了,如果不⾏,可以再加⼤
js = "var q=document.documentElement.scrollTop=10000"
# 以上⽅法在Firefox和IE浏览器上上是可以的,但是⽤Chrome浏览器,也不管⽤。Chrome浏览器的解决办法是:
js = "var q=document.body.scrollTop=0"
ute_script(js)
# 如果要对页⾯中的内嵌窗⼝做滚动操作,先定位窗⼝的元素位置(⽐如下⽅id=name的情况),但这⾥能执⾏的前提是滚动条有id属性,如果没有id属性是⽆法操作的,再执⾏js脚本即可
js = "var ElementById('name').scrollTop=1000"
time.sleep(3)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论