19、Selenium调⽤js⽅法
Selenium 调⽤js⽅法
execute_script(script, *args)
有时候我们需要控制页⾯滚动条上的滚动条,但滚动条并⾮页⾯上的元素,这个时候就需要借助js是来进⾏操作。
⼀般⽤到操作滚动条的会两个场景:
1. 要操作的页⾯元素不在当前页⾯范围,⽆法进⾏操作,需要拖动滚动条
2. 注册时的法律条⽂需要阅读,判断⽤户是否阅读的标准是:滚动条是否拉到最下⽅。
1.1滚动条回到顶部:
js="var ElementById('id').scrollTop=0"
1.2滚动条拉到底部
js="var q=document.documentElement.scrollTop=10000"
可以修改scrollTop 的值,来定位右侧滚动条的位置,0是最上⾯,10000是最底部
以上⽅法在Firefox和IE浏览器上上是可以的,但是⽤Chrome浏览器,发现不管⽤。Chrome浏览器解决办法:
js控制滚动条js = "var q=document.body.scrollTop=0"
1.3横向滚动条
js = "window.scrollTo(100,400)"
1.4参考代码
from selenium import webdriver
from lxml import etree
import time
url = "search.jd/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&wq=%E7%AC%94%E8%AE%B0%E6%9C%AC&pvid=845d019c94f6476ca5c4ffc24df6865a" # 加载浏览器
wd = webdriver.Firefox()
# 发送请求
<(url)
# 要执⾏的js
js = "var q = document.documentElement.scrollTop=10000"
# 执⾏js
time.sleep(3)
# 解析数据
e = etree.HTML(wd.page_source)
# 提取数据的xpath
price_xpath = '//ul[@class="gl-warp clearfix"]//div[@class="p-price"]/strong/i/text()'
# 提取数据的
infos = e.xpath(price_xpath)
print(len(infos))
# 关闭浏览器
wd.quit()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。