selenium 执行 js 代码的两个方法你都会用吗?

在使用selenium做web自动化的时候,很多小伙伴反馈有些页面上动作我们无法通过selenium封装的方法直接去做。

比如说修改元素的属性,影子节点的操作等等。需要使用原生的js代码去实现,而selenium也给我提供了两个执行js代码的方法。
一个是execute_script,另一个是execute_async_script。
很多小伙伴不太清楚这两个方法有什么区别。那么今天就来和大家聊聊这两个方法的区别以及使用。
execute_script方法
execute_script这个方法应该是大家用的比较多的,接下来我们来看一下这个方法的源码,源码参考如下:

通过源码的中的使用案例我们可以看到这个方法使用起来是比较简单的,通过script执行传入js代码即可
那么这个方法还有一个不定长参数args,这个参数可以用来传递一些在执行js代码的时候需要的一些参数
比如通过js去操作某个元素,我们可以将定位到的元素传进去,下面我们通过一个案例来看一下:
案例:12306日期修改
打开12306首页大家可以去试一下,图中的日期输入框是不能够直接通过输入修改日期的
原因是input元素有一个readonly属性(只读属性),要修改日期则需要把readonly这个属性设为false
而selenium中没有直接的方法可以修改元素的属性,只有通过js才能做的,那么接下来我们就使用execute_script方法来执行对应的js代码。

 

代码如下:

 

那么关于execute_script这个方法的使用我们就先聊到这里,接下来我们来看看另一个方法,
execute_async_script方法
关于execute_async_script这个方法,我们依然先来看看这个方法的源码,源码参考如下:

 

通过源码的注释中我们可以看到,这是一个异步执行js代码的方法
注意:这边的异步执行并不是python中异步执行,而是js代码执行是异步执行的
( 关于js异步这边不做过多的扩展,大家可以自行扩展学习)
我们来看一下这个方法怎么使用。首先看源码中的使用示例,我们一起来分析一下

 

那么接下来我们还是通过12306这个案例来演示,异步js代码的执行:
案例代码:

 

 

效果图如下:

 

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【100%免费无套路】 

å¨è¿éæå¥å¾çæè¿°

 全套资料获取方式:点击下方小卡片自行领取即可

程序员Baby~
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
selenium中使用unittest框架批量执行测试用例,并生成HTML报告方法
01-20
前面的文章中我向大家介绍了单个脚本中执行用例生成HTML报告的方法。但在实际测试工作中我们往往需要同时批量的执行测试脚本并将所有测试用例执行结果显示在同一HTML报告中。这样改如何实现呢?下面请看博主一一讲解...
Selenium核心技术篇】execute_script方法执行JavaScript操作页面滚动条
小慌慌的博客
04-15 1万+
前言 一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210415 Selenium执行javaScript WebDriver有两个方法执行JavaScript,分别是: execute_script(同步执行) execute_async_script(异步执行) 实操:通过JavaScript实现页面滚动,JavaScript操作滚动条: from selenium import webdriver from time import sleep cla..
使用Jmeter遇到随机取值的需求怎么办?
软件测试技术交流分享
08-19 1191
虽然Jmeter能用来做参数化的组建有几个,但是貌似都没有随机取值的功能,所以我们可以用函数__CSVRead()来实现:
Python+Selenium 如何使用execute_async_script的callback
ngsb153的博客
08-16 6530
Selenium如何使用execute_async_script的callback 前言 在我百度的时候,貌似关于execute_script的讲解不少,但是关于execute_async_script的讲解不是很多,还看到有文章在问callback为什么不能用(写在python里是肯定不能用的……)所以自己也写一篇关于execute_async_script的用法。 基础 很多用法上的错误是源于...
Java Selenium WebDriver 中executeAsyncScript和executeScript方法的使用
weixin_42098295的博客
06-25 1407
本文主要介绍Java中,使用Selenium WebDriver 调用浏览器执行Js(JavaScript)代码,其中executeAsyncScript和executeScript方法的使用。 原文地址:Java Selenium WebDriver 中executeAsyncScript和executeScript方法的使用
selenium使用execute_script方法执行JavaScript操作
weixin_45552310的博客
12-14 1万+
execute_script(script, *args) 有些在页面上无法定位的元素,需要执行js操作的时候,就需要用此方法,比如滚动条滚动操作 实例: from selenium import webdriver class TestExample: def test_example1(self): driver = webdriver.Chrome() driver.maximize_window() driver.get("https://ww
Selenium执行Javascript脚本参数及返回值过程详解
10-15
主要介绍了Selenium执行Javascript脚本参数及返回值过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
selenium执行phantomjs的API并获取执行结果的方法
01-20
因为最近要写一个抓取sitemap和相应的参数的小脚本,现有的爬虫无论用什么语言写的,几乎都无法抓取参数,所以我思考了一下,先做一个简单的总结。 本来以为写个这种sitemap的爬虫很简单,经过思考之后才发现其中的...
selenium的环境js文件代码,亲测淘宝等多个大型网站可用
07-12
这个文件为selenium的环境文件,通过下面函数加载该环境,目前试过淘宝跟多个大型知名网站都是可用使用的,通过执行下面代码实现selenium的环境伪装 chrome_options = webdriver.ChromeOptions() chrome_options....
selenium判断元素是否存在的两种方法小结
01-21
selenium中没有对应的方法,需要自己去写。 元素存在,但不唯一,操作元素报错 元素不存在,操作元素也报错 第一种:捕获异常 弊端:只要页面上有元素,不几个,都返回True from selenium import webdriver...
Selenium3 Python WebDriver API源码探析(7):同步/异步执行JavaScript(execute_script,execute_async_script:参数,返回值)
mighty13的专栏
03-15 3万+
概述 Selenium虽然内置了很多与浏览器交互的方法,但是有一些方面还是不能完全覆盖,因此执行JavaScript是非常有必要的,这也是模拟浏览器包必备的功能。 需要执行JavaScript的主要场景如下: 修改元素的属性,如显示隐藏元素 执行特定动作,如拖动滚动条 表单操作,如向文本框输入内容 获取某些Selenium未提供接口的DOM属性 注入其他工具库,比如jQuery execute_script方法 Selenium执行JavaScript主要依靠WebDriver的execute_scr
Selenium WebDriver中常用到的JavaScript操作
greta_guo的博客
06-15 5835
在使用selenium中的webdriver编写automation时,我们可能需要执行一些JavaScript代码。在selenium中有Javascript类可以执行。 import org.openqa.selenium.JavascriptExecutor; 其中有两个方法我们经常遇到。 executeScript、executeAsyncScript method 详情
Selenium2(WebDriver)中执行JavaScript代码
繁华陌路丶的博客
05-24 6898
在用selenium编写web页面的自动化测试代码时,可能需要执行一些JavaScript代码selenium本身就支持执行js,我们在代码中可以使用executeScript、executeAsyncScript这两个方法执行JS。 executeScript是同步方法,用它执行js代码阻塞主线程执行,直到JS代码执行完毕; executeAsyncScript方法是异步方法
[Selenium+Java] Execute JavaScript based code using Selenium Webdriver
weixin_30732825的博客
05-28 116
Original URL:https://www.guru99.com/execute-javascript-selenium-webdriver.html Execute JavaScript based code using Selenium Webdriver In Selenium Webdriver, locators like XPath, CSS, etc. are...
python之selenium调用js(execute_script)
热门推荐
yinlin330的博客
09-11 9万+
在编写自动化程序的时候,遇到弹出新窗口的情况,而程序总是默认在第一个窗口页定位元素,这样,就定位不到元素,程序报错。 举一个实例说明,如下的网站在第一窗口页面点击“登陆”,弹出一个新的窗口页输入用户名/密码,如果程序不做出来,在定位用户名的时候,程序在第一个窗口页中查询,所以报错 要解决这个问题有两种方法: 首先,弄明白为什么点击“登录”按钮弹出一个新的窗口,下面我们来检查一...
selenium.JavascriptExecutor.executeScript() 使用实例
iSelenium
03-29 2万+
  Example 1 Project: syndesis-qe File: CommonSteps.java View Source Code Vote up 6 votes /** * Scroll the webpage. * * @param topBottom possible values: top, bottom * @param leftRight poss...
Selenium 高级应用
My space
02-09 2482
 对于这一段还蛮有感慨的,只想说,代码还是需要自己去敲的。 1. 改变用户代理 import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.
Java + Selenium实现执行执行javascript脚本,并获取返回值
majixiang1996的博客
01-11 7010
文章目录前言一、Selenium是什么?二、使用步骤1.下载驱动2.加载依赖3.编写代码3.1需要在jvm运行时环境中,添加配置3.2 配置chrome3.3 执行脚本总结 前言 本文主要介绍通过Java调用Selenium执行js脚本,并获取js中的返回值,并且可以实现不弹出浏览器,后台静默执行。 提示:以下是本篇文章正文内容 一、Selenium是什么? selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,可以使用包括括IE(7, 8, 9, 10, 11
selenium webdriver中执行js(java)
专注自动化、性能测试、测试架构学习交流
04-25 1万+
代码中import org.openqa.selenium.JavascriptExecutor;就可以使用executeScript、executeAsyncScript这两个方法了 executeScript是同步方法,用它执行js代码阻塞主线程执行,直到js代码执行完毕; executeAsyncScript方法是异步方法,它不阻塞主线程执行。 executeScript方法如果...
selenium如何执行js脚本?
最新发布
12-03
方法接受一个JavaScript字符串作为参数,并返回JavaScript代码执行结果。下面是一个简单的示例: ```python from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com"...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 面试两个月,我吐了!(软件测试岗面试经验) 41324
  • 史上最详细的接口测试,一篇学会接口 38599
  • 带你了解测开 10731
  • 目前最火的测试框架,pytest封神级讲解 7937
  • 研究生毕业入职阿里,2年升职到P7,晒出真实月薪,以为看错了 6570

分类专栏

  • 自动化测试 3篇
  • 接口测试
  • 笔记

最新评论

  • Selenium打开浏览器的方式总结

    2401_83974412: 大佬高质量文章,图文并茂,逻辑清晰,受益匪浅,期待大佬新作。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 怎么做自动化测试框架分层架构

    伟海荣光: 每当我阅读你的编程博客文章时,我总能感受到你的专业水平和耐心解答的精神。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 软件测试架构体系之软件测试基本流程图

    2401_84023290: 文章结构严谨有条,层次分明,读起来一点也不费劲,让人受益匪浅。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • Jmeter多用户并发压力测试过程图解

    ha_lydms: 这个博客是我每天不可或缺的一部分,因为我觉得自己从中学到了很多宝贵的经验和智慧。

  • 用 docker 创建 jmeter 容器, 实现性能测试

    白话机器学习: 内容丰富图文并茂,认真看完收获很大。思路清晰细节满满,支持大佬优质好文。

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Selenium元素定位之页面检测技巧
  • selenium中元素定位正确但是操作失败,6种解决办法全搞定
  • 测试大佬浅谈自动化测试框架开发
2024
04月 29篇
03月 23篇
02月 7篇
01月 32篇
2023年541篇
2021年178篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司东莞网站推广工具哪家好南澳网络推广多少钱吴忠网站seo优化江门推广网站推荐柳州设计网站哪家好坪山品牌网站设计公司鹰潭seo网站推广哪家好哈密企业网站设计报价石岩营销网站推荐南通模板推广遂宁网站搭建推荐龙华网站定制价格安康网站建设价格盘锦网站推广系统推荐台州SEO按天扣费公司台州seo优化运城英文网站建设迁安网站优化按天收费推荐驻马店网站推广方案推荐合肥网站优化排名沈阳模板网站建设价格松原优秀网站设计价格绥化网站推广方案报价鹤岗SEO按效果付费报价坂田至尊标王推荐和县英文网站建设公司和田网站搜索优化芜湖网站制作设计报价舟山SEO按天计费报价仙桃建设网站推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化