Selenium 通过 selenium 操作页面元素时,如何修改前端 js 文件中某个变量的值

Aiden · 2022年07月11日 · 最后由 meifei 回复于 2023年05月05日 · 8021 次阅读

最近在用 selenium 做测试的时候遇到点问题,各位大佬帮看看。

我的系统是一个用户开户系统。给用户办理开户业务时,必须观看完某个视频文件才能完成开户。我在提交用户填写的资料的时候,系统会判断用户有没有观看视频文件。

我人工测试的时候,点击提交资料按钮前会在前端 js 文件中打断点,给 js 文件中某个变量赋值,让系统认为我已经看过这个视频文件了。

我用 selenium 去驱动操作页面元素的时候,不想去看这个视频。我也没办法在前端 js 代码中打断点,可有什么办法修改前端 js 页面中某个变量的值。就像上面说的打断点后修改变量值一样。

共收到 7 条回复 时间 点赞

selenium 有现成的方法 driver.execute_script()

WebDriver 提供了两个执行 JS 代码的方法

  1. execute_script(script, *args)
  2. execute_async_script(script, *args)
6楼 已删除
Pactortester 回复

我不知道在什么时候执行 driver.execute_script()。我这里是点击"提交"按钮时,校验参数。我怕我执行 driver.execute_script() 的时候,参数还没被定义。

你这个处理思路应该是:前端肯定是通过 js 取某个值来判断视频是否播放,是否完成的,你把 js 取值的地方状态变更了应该 js 就会取到值,不需要你特地去处理 js 获取的入参

Pactortester 回复

我是想通过 selenium 操作页面元素的时候,修改我的被测系统的某个 js 脚本中某个变量的值。而不是修改被测系统的某个元素的属性。这个可以实现吗

我是想通过 selenium 操作页面元素的时候,修改我的被测系统的某个 js 脚本中某个变量的值。而不是系统的某个元素的属性。这个可以实现吗

这个问题找到解决方案了吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册