当前位置: 首页 > news >正文

selenium execute_script常用方法汇总

driver.execute_script() 是 Selenium WebDriver 中非常强大且灵活的功能,可以用来执行任意的 JavaScript 代码在浏览器上下文中。以下是一些常用的 execute_script() 方法的例子和用法:

  1. 修改元素的属性和值
python# 修改输入框的值
driver.execute_script("arguments[0].value = '你好'", element)

修改元素的属性

driver.execute_script("arguments[0].setAttribute('style', 'background: yellow')", element)
  1. 获取元素的属性或值
python# 获取元素的值
value = driver.execute_script("return arguments[0].value", element)

获取元素的属性

attribute = driver.execute_script("return arguments[0].getAttribute('attributeName')", element)
  1. 执行滚动操作
python# 滚动到页面底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
#滚动到特定元素
driver.execute_script("arguments[0].scrollIntoView(true);", element)
  1. 执行点击操作
python# 点击元素
driver.execute_script("arguments[0].click();", element)
  1. 获取页面内容或元数据
python# 获取页面的标题title = driver.execute_script("return document.title;")
# 获取页面的URL
url = driver.execute_script("return document.URL;")
  1. 操作浏览器的导航
python# 前进到下一个页面
driver.execute_script("window.history.go(1);")
# 返回到上一个页面
driver.execute_script("window.history.go(-1);")
  1. 执行复杂的 JavaScript 代码
python# 执行一个自定义的 JavaScript 函数
result = driver.execute_script("""function customFunction() {// 自定义逻辑return 'Hello from custom function!';}return customFunction();
""")
  1. 处理 AJAX 请求或动态内容
python# 等待 AJAX 请求完成
driver.execute_script("""var callback = arguments[arguments.length - 1];var xhr = new XMLHttpRequest();xhr.open('GET', '/some/ajax/request', true);xhr.onreadystatechange = function() {if (xhr.readyState == 4) {callback(xhr.responseText);}};xhr.send();
""")
  1. 创建和触发事件
    python# 创建并触发一个事件
driver.execute_script("""var event = new Event('change');arguments[0].dispatchEvent(event);
""", element)

这些示例展示了 execute_script() 的多种应用方式,可以用来操作页面元素、获取页面信息、控制浏览器行为等等。利用 JavaScript 的灵活性,几乎可以在浏览器中完成任何操作。

http://www.lryc.cn/news/372685.html

相关文章:

  • 如何选择最佳的APP封装平台-小猪APP分发为您解忧
  • Linux基础 (十八):Libevent 库的安装与使用
  • 冒泡排序的详细介绍 , 以及c , python , Java的实现方法
  • 使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署
  • 给你一个扫码支付的二维码,如何写测试用例?
  • 计算机专业在未来的发展与抉择
  • 【Linux】基础IO——文件描述符,重定向
  • 1.0 Android中Activity的基础知识
  • 线代知识点总结
  • 案例学习-存量更新规划实施探索(武汉)
  • C#操作MySQL从入门到精通(17)——使用联结
  • MyBatis 关于查询语句上配置的详细内容
  • 基于STM32和人工智能的智能家居监控系统
  • 这三款使用的视频、图片设计工具,提供工作效率
  • [Algorithm][贪心][最长递增子序列][递增的三元子序列][最长连续递增序列][买卖股票的最佳时机][买卖股票的最佳时机Ⅱ]详细讲解
  • 手把手教你入门vue+springboot开发(三)--登录功能后端
  • 三款有3D效果的js图表库
  • 【SQLAlChemy】表之间的关系,外键如何使用?
  • Linux 基础IO 二
  • 找工作小项目:day15-macOS支持、完善逻辑
  • 植物大战僵尸杂交版 v2.0.88 mac版 Plants vs. Zombies 杂交版下载
  • PHP中的while循环:用法、技巧与最佳实践
  • 如何解决跨境传输常见的安全及效率问题?
  • 『大模型笔记』主成分分析(PCA)解释:简化机器学习中的复杂数据!
  • springboot与flowable(5):任务分配(表达式)
  • 如何使用CCS9.3打开CCS3.0工程
  • Stable Diffusion 3 Medium 模型
  • 数据分析------统计学知识点(五)
  • Superset二次开发之Git篇 git remote
  • 记录一下PHP使用微信小程序支付