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 本身无法直接实现的功能。
热门推荐
白菜饺子馅,用盐杀水是大错!教你正确做法,不出水,不腥不柴
河南哪座城市最“幸福”?哪座城市最宜居?2024河南社会治理发展报告出炉
一天三餐都吃饱是否会影响减肥?医生的专业解答
数据分析能力怎么提升
藏红花:点亮心灵的 “红色希望”
如果太阳突然熄灭了,以人类当前的能力,生存多久?
虾苗养殖增氧设备选择:罗茨风机与爆氧盘的合理搭配
海德格尔的技术哲学:祛魅与返魅的现代性批判
打卡江苏,这10条“小吃街”别错过!价不贵,品种全,地道江南味
如何准备投资前的市场分析
奇门遁甲的人盘系统
百灵鸟:草原上的歌唱家
减肥时膝盖疼?这些原因和对策帮你轻松应对
苹果电脑怎么装win11系统_用u盘给苹果电脑装win11系统教程
U盘的文件系统格式化选哪个好?
论文word排版小窍门:图片插入技巧
驼背对身体健康的影响
补阳还五汤歌诀是什么
恭城油茶:从瑶乡特色饮品到世界级非遗
股市导航,揭秘炒股必看的精准新闻来源
上海15家经久不衰的老牌面包店,有没有你心中的“白月光”?
猫咪为什么喜欢用舌头舔你的脸?这样做有什么含义?
ERP操作流程如何简化
价值流分析是什么?如何应用价值流分析提升生产效率?价值流分析的步骤与案例详解
颍川多奇士
期权Gamma策略深度解析:两种主要交易策略详解
主动脉硬化怎样调理和运动
心脏神经官能症:日常注意事项与多方面管理?
折子戏:戏曲艺术中的精彩片段
设备维修培训课程的重要性和多重效益