gpt4 book ai didi

javascript - capybara-webkit 无法执行 javascript(minitest 系统测试)

转载 作者:行者123 更新时间:2023-11-30 20:28:54 25 4
gpt4 key购买 nike

谷歌搜索了几天,但没有解决以下问题:我使用 Minitest(5.11.3)、capybara(2.13.0) 和 capybara-webkit(1.14.0) 进行了系统测试,说测试在 2 个依赖 javascript 的特定 View 上失败:View1 根据以下内容隐藏/显示字段一个下拉选择,View2 根据用户在另一个下拉菜单中的选择通过 AJAX 请求对字段数据收费。

当前配置:

require 'test_helper'
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
driven_by :webkit
Capybara.javascript_driver = :webkit
end

开销配置(一直偏执,以防万一)

setup do
Capybara.current_driver = Capybara.javascript_driver
end

点击和断言仍然会失败,因为 Javascript 没有被执行,因此, View 上的预期更改永远不会发生。不用说,它在开发中无缝工作:)。

最佳答案

这很可能是因为您正在使用基于 QtWebkit 的 capybara-webkit。如果使用 QtWebkit 的任何发行版本构建,它不支持 JS > ES5.1。这意味着如果您使用任何现代 JS 功能(let/const/添加到 ES6 中的标准对象的方法等)并且没有完全转译/填充兼容 ES5 的 JS 会抛出错误,因此无法运行。您可以通过运行 selenium(如果需要 headless ,则为 headless chrome)来确认这一点,并查看您的测试是否在那里工作。

注意:如果使用 driven_by 进行系统测试,则不需要直接设置 javascript_driver,并且您可能希望至少将 Capybara 升级到最新的 2.x版本。

关于javascript - capybara-webkit 无法执行 javascript(minitest 系统测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50587244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com