javascript - 如何验证是否使用 Selenium 在 javascript 对象上调用了某些方法?

标签 javascript testing selenium mocking assertion

我想用 selenium 验证是否调用了某些方法(带参数) JavaScript 对象 - 一种使用 JMockit 的期望模拟,但在 Javascript 和 selenium 中。

不幸的是,对象是被严重混淆的不透明网站性能跟踪器,我无法访问它的内部结构,所以在我看来,模拟是唯一的选择。还是我漏掉了一些明显的东西?

更新:经过思考,在我看来解决方案可能是: - 等待 HTML 完全加载 - 删除某些包含性能跟踪器的脚本标签 - 创建 javascript 模拟对象,其行为类似于跟踪器,但记录调用供以后使用

最佳答案

好的,终于明白了。选择的模拟框架是:jsmockito 和 jshamcrest(jsmockito 需要它)- http://jsmockito.org/

这是小菜一碟。

监视现有对象:

<tr>
<td>storeEval</td>
<td>window.wwa = JsMockito.spy(window.wwa$); </td>
<td>mockedWipe</td>

...做任何必要的

并验证它:

<tr>
<td>storeEval</td>
<td>JsMockito.verify(window.wwa$).logAction('Trefferliste Webadresse');</td>
<td></td>

注意事项:

  • 窗口作用域变量在命名空间 window
  • 可以忽略验证步骤的评估值,因为如果调用不满足,您会得到异常
  • 不要忘记将 js 库添加到您的 selenium ide 或测试驱动程序中

关于javascript - 如何验证是否使用 Selenium 在 javascript 对象上调用了某些方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140856/

相关文章:

javascript - 开 Jest 和console.dir不会显示整个对象

javascript - 不同的 html 来源

java - 范围报告在 Cucumber 4.7.1 中不起作用

javascript - 在 JavaScript 中设置运行时钟的时区

javascript - 使用 Web Api Controller 验证表单

python - 测试套件 python - webdriver

java - 并行测试时 TeamCity 中的构建日志令人困惑

javascript - 如果 bootstrap4 模态位于页面下部,当点击模态内的输入字段时,它会滚动到底部(chrome android)

javascript - 多维数组中的循环未显示预期内容

reactjs - mocha/chai 如何测试在 then 或 catch 回调中调用了一个方法