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 本身无法直接实现的功能。
热门推荐
大美平度邀你来!新春文旅攻略出炉,请查收这份专属浪漫~
黄石超级火山:下一次喷发何时到来?
意大利那不勒斯湾的超级火山:Campi Flegrei最新研究揭示潜在威胁
新西兰超级火山喷发后的全球气候变化预测
富埃戈火山最新监测:科学家揭秘火山喷发之谜
半圆形设计让家居更时尚!
张凯丽再捐百万支持家乡慈善事业,用艺术与公益双轮驱动人生
沈阳故宫:最潮打卡地推荐
秋冬游沈阳:故宫俯瞰与棋盘山赏枫的完美组合
信用卡注销常见误区及避坑指南
如何注销手机证券账户?这种注销操作有哪些常见问题?
延边博物馆:文化盛宴贺新春,别样年味醉游人
延边博物馆:文化盛宴贺新春,别样年味醉游人
孕期吃草莓,宝宝更健康?揭秘草莓对孕妇的三大益处
草莓「美白、減肥又防便祕」,解析草莓功效禁忌、品種、產季
草莓虽甜,但你知道一天吃多少才合适吗?
水果是凉的,为什么吃了还上火?一文带你读懂水果的“性格”
真空泵系统维护指南:基础知识与最佳实践
真空袋内有水汽该怎么办?
三角形设计让办公空间焕发新活力
三角形的奥秘:从基础到高阶的全面解析
高考物理必备:三角形解题技巧大揭秘!
杭州银湖实验小学揭秘:如何通过实验理解三角形稳定性?
普利兹克奖推荐:三角形在现代建筑设计的应用
我家喵星人和汪星人的搞笑日常大揭秘!
香港冬日美景:尖沙咀与维多利亚港的璀璨夜色
香港文化双璧:大馆与西九文化区的时空对话
大S因病去世!年仅48岁,曾说过:“我不希望我的命太长……”
【健康科普】猝死原因多,提前预防是关键!
超级火山喷发:地球降温新解?