python3+selenium入门15-执行JavaScript

有时有些功能需要通过js来执行,比如拖动浏览器的滚动条。通过execute_script()方法可以执行js的代码

window.scrollTo()可以传两个参数,第一个参数是下方滚动条的位置,第二个参数是右边滚动条的参数

from selenium import webdriver
import time
dr = webdriver.Firefox()
dr.get('https://www.baidu.com')
dr.set_window_size(600,600)#设置浏览器大小,让两个滚动条都显示出来
dr.find_element_by_id('kw').send_keys('selenium')
dr.find_element_by_id('su').click()
time.sleep(2)
js = "window.scrollTo(100,300)"
dr.execute_script(js)

也可以使用一些方法去代替参数 document.body.scrollHeight

from selenium import webdriver
import time
dr = webdriver.Firefox()
dr.implicitly_wait(10)
dr.get('https://www.baidu.com')
dr.find_element_by_id('kw').send_keys('selenium')
dr.find_element_by_id('su').click()
time.sleep(2)
js = "window.scrollTo(0,document.body.scrollHeight)"#滑动到底部
dr.execute_script(js)

使用scrollTo()方法可以兼容火狐和谷歌。

不知道为啥一定要先sleep之后才能成功拖动浏览器滚动条

dr.execute_script("arguments[0].scrollIntoView();", 某个元素) #拖动到可见的元素去

如果要操代码内嵌的滚动条,可以先定位滚动条,然后用鼠标事件中拖放功能去操作。

很多js功能都可以通过execute_script()方法俩执行,比如有些元素的点击会触发js事件,就需要用js的点击来执行。

猜你喜欢

转载自blog.csdn.net/a54288447/article/details/81332064