语法很简单:driver.execute_script("js代码")
selenium发送js代码让浏览器执行js代码,经常遇到的两种场景:
一、窗口的滚动
1、滚动到最底部:window.scrollTo(0,document.body.scrollHeight)
2、需要被定位的元素没有在可视范围内,需要将滚动条滚动到可视范围内:
ele = document.getElementById('kw')
ele.scrollIntoView()
"""
时间:2021/8/3-23:11
文件:class_07_01.py
姓名:瓜牛强强
QQ:1689785398@qq.com
"""
import time
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 设置窗口大小,让你们看到效果
driver.set_window_size(100,400)
# 打开一个网页
driver.get("http://www.baidu.com/")
time.sleep(5)
js_0 = "ele = document.getElementById('kw')" # 先定位id属性定位到输入框元素
js_1 = "ele.scrollIntoView()" # 滚动到输入框的位置
js_2 = "window.scrollTo(0,document.body.scrollHeight)" # 滚动到最底部
driver.execute_script(js_0)
time.sleep(5)
driver.execute_script(js_1)
time.sleep(5)
driver.execute_script(js_2)
time.sleep(5)
# 关闭整个浏览器,并且关闭驱动chromedriver
driver.quit()
二、选择时间
以XXXXX官网为例子,现在去操作日期输入框,输入数值
第一种方法:通过js去定位元素
"""
时间:2021/8/3-23:29
文件:class_07_02.py
姓名:瓜牛强强
QQ:1689785398@qq.com
"""
import time
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()
# 打开一个网页(有个小坑)
driver.get("https://www.60321.cn/index/")
time.sleep(5)
js = """
ele=document.getElementById('train_date');
ele.value = '2021-08-04'
"""
driver.execute_script(js)
time.sleep(5)
# 关闭整个浏览器,并且关闭驱动chromedriver
driver.quit()
第二种方法:通过python去定位元素
"""
时间:2021/8/3-23:29
文件:class_07_02.py
姓名:瓜牛强强
QQ:1689785398@qq.com
"""
import time
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()
# 打开一个网页(还是那个小坑)
driver.get("https://www.60321.cn/index/")
time.sleep(2)
# 通过python定位元素
ele = driver.find_element('id','train_date')
time.sleep(2)
js = 'arguments[0].readOnly=false;arguments[0].value="2021-08-04"'
driver.execute_script(js,ele)
time.sleep(5)
# 关闭整个浏览器,并且关闭驱动chromedriver
driver.quit()
To be continue,点个关注,持续更新。。。