首页
\
资讯列表
\ selenium 执行 js 代码的两个方法你都会用吗?
selenium 执行 js 代码的两个方法你都会用吗?
在使用selenium做web自动化的时候,很多小伙伴反馈有些页面上动作我们无法通过selenium封装的方法直接去做。
比如说修改元素的属性,影子节点的操作等等。需要使用原生的js代码去实现,而selenium也给我提供了两个执行js代码的方法。一个是execute_script,另一个是execute_async_script。很多小伙伴不太清楚这两个方法有什么区别。那么今天就来和大家聊聊这两个方法的区别以及使用。execute_script这个方法应该是大家用的比较多的,接下来我们来看一下这个方法的源码,源码参考如下:通过源码的中的使用案例我们可以看到这个方法使用起来是比较简单的,通过script执行传入js代码即可那么这个方法还有一个不定长参数args,这个参数可以用来传递一些在执行js代码的时候需要的一些参数比如通过js去操作某个元素,我们可以将定位到的元素传进去,下面我们通过一个案例来看一下:打开12306首页大家可以去试一下,图中的日期输入框是不能够直接通过输入修改日期的原因是input元素有一个readonly属性(只读属性),要修改日期则需要把readonly这个属性设为false而selenium中没有直接的方法可以修改元素的属性,只有通过js才能做的,那么接下来我们就使用execute_script方法来执行对应的js代码。
那么关于execute_script这个方法的使用我们就先聊到这里,接下来我们来看看另一个方法,关于execute_async_script这个方法,我们依然先来看看这个方法的源码,源码参考如下:通过源码的注释中我们可以看到,这是一个异步执行js代码的方法
评论:
点赞:0
阅读: