Selenium之execute_script()方法执行js脚本
创作时间:
作者:
@小白创作中心
Selenium之execute_script()方法执行js脚本
引用
CSDN
1.
https://m.blog.csdn.net/weixin_47257473/article/details/140560131
Selenium 是一个强大的 Web 自动化测试工具,但有时会遇到一些 Selenium 原生方法无法直接实现的功能。这时,我们可以使用 execute_script() 方法来执行 JavaScript 脚本,以实现更灵活的 Web 自动化测试或数据抓取任务。
核心应用场景
execute_script() 方法主要有以下应用场景:
- 页面滚动:滚动到指定位置或页面底部
- 获取返回值:从页面元素中获取特定信息
- 返回 JavaScript 定位的元素对象:获取元素对象并操作其属性或方法
- 修改元素属性:修改元素的属性值
- 弹出提示框:显示提示信息
代码示例
页面滚动
滚动到指定位置:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
class casetest(object):
def __init__(self):
self.driver = webdriver.Edge()
self.driver.get('http://www.baidu.com')
def test_execute(self):
self.driver.find_element(By.ID,('kw')).send_keys('selenium')
self.driver.find_element(By.ID,('su')).click()
sleep(2)
js = 'window.scrollTo(0,1000)'
self.driver.execute_script(js)
sleep(2)
if __name__ == '__main__':
case = casetest()
case.test_execute()
case.driver.quit()
滚动到页面底部:
js = 'window.scrollTo(0,document.body.scrollHeight)'
self.driver.execute_script(js)
获取返回值
以博客园某作者为例,获取“博客园”这个文本:
js = ('return document.getElementById("blog_nav_sitehome").innerText')
res = self.driver.execute_script(js)
print(res)
返回 JavaScript 定位的元素对象
获取元素的所有属性:
js = ('return document.getElementById("blog_nav_sitehome")')
res = self.driver.execute_script(js)
print(res.text)
link = res.get_attribute("href")
print(link)
res.click()
修改元素属性
修改日期控件的值:
self.driver.execute_script("dat=document.getElementById('train_date'); dat.removeAttribute('readonly')")
self.driver.execute_script("document.getElementById('train_date').value='2023-10-01'")
now_time = self.driver.execute_script("return document.getElementById('train_date').value")
assert '2023-10-01' == now_time
弹出提示框
显示提示信息:
js = "alert('This is a Test!')"
self.driver.execute_script(js)
通过 execute_script() 方法,我们可以利用 JavaScript 的强大功能与页面进行更深入的交互,完成一些 Selenium 本身无法直接实现的功能。
热门推荐
Verilog语言中的竞争与冒险:概念、判断与消除方法
出租人是否要履行维修义务
牛散夏重阳做了6个翻倍股,又埋伏这6个股票,全是低价股
甲沟炎手术治疗全解析
1元注册资本的公司是否可以注册?
美墨战争:领土纷争背后的帝国崛起与民族悲歌
匠心养好蜂,酿造幸福蜜,陈宜斗传承"蜜蜂文化"
一天吃4根香蕉,真的过量了吗?
锦鲤白头白嘴病:症状、病因与防治方法
ACL 2024论文:PlugIR实现交互式文本到图像检索的即插即用方法
薄荷曼波风席卷而来,品牌如何挖掘色彩价值?
王者荣耀:如何有效克制夏侯惇?装备选择与克制策略全解析
年终奖个税拆分优化策略
春节效应助力1月CPI同比涨幅升至0.5%,为5个月来最高
3D1和3D6有什么不同?
宝宝抓周32件物品的寓意解读 抓周物品有什么特别的含义吗
秒开超大文件夹:如何禁止 Windows 自动识别文件夹类型
大模型推理优化之 KV Cache
河南建黄河文化遗产"数据库"
如何看懂最热门的加密货币K线图形态?
教你做这4道家常菜,营养美味,下饭好吃,特别适合上班族
7道适合上班族的家常菜,简单易做又美味
考研怎么找学校和专业?去哪里搜集研究生院校信息?
维生素E的用法和用量指南
简述机油压力过高的故障诊断与排除方法
眼泪辣眼睛?揭示你不知道的眼部健康秘密!
新能源汽车购置税计算有何特殊规定
美墨战争:吞并加州是福是祸?
赣南医科大学是985还是211大学?
黑龙江勃利猛虎进村背后:近年东北野外公路“偶遇”多