python selenium实现滚动条,selenium拉动滚动条
大蟒之硒操作下拉滚动条方法硒之页面滚动至页面底部的数种解决方案_mb62abf3afb54fb的技术博客_博客
场景:元素在当前显示的页面不可见,拖动页面下拉直到该元素出现,此时才可以定位到该元素。
实例:
比如下面有一个网页,需要进行拖动页面下拉条后才能通过硒找到密码输入框的元素:
拖动页面下拉条后:
方法使用射流研究…脚本直接操作:
js= var q=document。getelementbyid( id ). scrollTop=10000
驱动程序执行脚本(js)或者:
js= var q=document。文档元素。滚动顶部=10000
driver.execute_script(js)【注意】上述代码中的编号为滚动条的编号属性,因为Java脚本语言中不存在语言语法(JavaScript无法识别语言元素定位),所以一旦滚动条没有编号属性,则此方法无法使用。
方法使用Java脚本语言脚本将滚动条拖动到指定地方:
注意:使用该方法需要获取将滚动条拖动至指定的元素对象定位
目标=驾驶员。find _ element _ by _ id( id _ key pair )#需要将滚动条拖动至的指定的元素对象定位
司机。execute _ script( arguments[0]).scrollIntoView();,目标)#将滚动条拖动到元素可见的地方该方法可以将页面滚动条拖动到需要显示的元素位置,此方法用途比较广,可以使用。
方法根据页面显示进行变通:
在本实例中的页面中,密码是输入框,正常手工操作时,可以通过标签键可以从用户框切换到密码框中,所以根据此思路,在大蟒中也可以发送标签键来切换,使元素显示。
从selenium.webdriver.common.keys导入密钥#导入键类
司机。find _ element _ by _ id( id _ log in _ method _ 0 )。发送键(按键。制表符)#定位元素并操作输入方法发送键(按键。结束)模拟向页面发送空格键
注意:发送空格键的元素应该是整个页面对象,比如说定位到页面身体后进行操作
#编码=utf-8
从硒导入网驱动程序
由导入者
从selenium.webdriver.common.keys导入密钥
从selenium.webdriver.support导入预期条件作为东部中央邮(政)区
从selenium.webdriver.support.ui导入WebDriverWait
从selenium . common . excepts导入超时异常
从硒。网络驱动。常见。动作链导入操作链
浏览器=网络驱动程序.Chrome(G:/dj/chromedriver.exe )
wait=WebDriverWait(浏览器,10)
浏览器。设置窗口大小(1400900)
导入时间
定义搜索():
尝试:
浏览器。得到( https://www。淘宝。com’)
总计=等待。直到(EC。element _ located的存在性(.CSS_SELECTOR, body div:n-child(29)))
对于范围(5)中的我:
浏览器。find _ element _ by _ tag _ name( body ).发送键(按键。空格)
时间。睡眠(1)
例外超时例外:
搜索()
搜索()方法使用鼠标操作
#编码=utf-8
从硒导入网驱动程序
由导入者
从selenium.webdriver.common.keys导入密钥
从selenium.webdriver.support导入预期条件作为东部中央邮(政)区
从selenium.webdriver.support.ui导入WebDriverWait
从selenium . common . excepts导入超时异常
从硒。网络驱动。常见。动作链导入操作链
浏览器=网络驱动程序.Chrome(G:/dj/chromedriver.exe )
wait=WebDriverWait(浏览器,10)
浏览器。设置窗口大小(1400900)
导入时间
定义搜索():
尝试:
浏览器。得到( https://www。淘宝。com’)
总计=等待。直到(EC。element _ located的存在性(.CSS_SELECTOR, body div:n-child(29))))
目标=浏览器。find _ element _ by _ CSS _ selector( body div:n-child(29))
动作=动作链(浏览器)
actions.move_to_element(目标)
actions.perform()
例外超时例外:
搜索()
搜索()拓展:
去期待陌生,去拥抱惊喜。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。