Capybara是Rack应用程序的Web应用程序测试框架,例如Rails,Sinatra和Merb。
错误:Rails 系统测试中函数 rgb 缺少参数 $green
我正在 Ruby on Rails 中运行应用程序的系统测试,它显示以下错误: 错误:函数 rgb 缺少参数 $green。在标准输入的第 1 行 >> 7280\]{--tw-border-opacity:1;border-color:rgb...
PhantomJS 可以选择截取整个页面的屏幕截图(不仅仅是当前视口)。有没有办法使用 Selenium 来做到这一点?我正在无头运行 Cucumber/Capybara 测试,usi...
我在测试环境中使用 Rspec 和 Capybara 开发 Rails 应用程序。 几天来,当我启动测试时,我应用于 CSS 的任何更改都不再被编译。以前的CSS编译得很好...
如何在 rspec 测试中定义可由辅助函数访问的简单全局变量
我不知道如何在 rspec 测试中使用简单的全局变量。这似乎是一个微不足道的功能,但经过多次研究后我还没有找到解决方案。 我想要一个变量......
如何使用水豚从下面的 HTML 中选择下拉值? 如何使用 Capybara 从下面的 HTML 中选择下拉值? <div class="clearfix expiryFields" data-reactid=".0.0.1.1.2.1.$0.0.2"> <div class="DropDownMenu expiryMonth focused" data-reactid=".0.0.1.1.2.1.$0.0.2.0"> <div class="label" data-reactid=".0.0.1.1.2.1.$0.0.2.0.0"> <select data-reactid=".0.0.1.1.2.1.$0.0.2.0.1" selected=""> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$0" value="0">Month</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$1" value="1">01</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$2" value="2">02</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$3" value="3">03</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$4" value="4">04</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$5" value="5">05</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$6" value="6">06</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$7" value="7">07</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$8" value="8">08</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$9" value="9">09</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$10" value="10">10</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$11" value="11">11</option> <option class="option" data-reactid=".0.0.1.1.2.1.$0.0.2.0.1.$12" value="12">12</option> </select> <div class="decorator" data-reactid=".0.0.1.1.2.1.$0.0.2.0.2"></div> <div class="arrow iconfont iconfont-ls_icon_arrow_small" data-reactid=".0.0.1.1.2.1.$0.0.2.0.3"></div> </div> from 的 select 选项采用选择元素的关联标签元素的 id、名称、占位符或文本。 “data-reactid”不是其中之一。 鉴于您在评论中添加的html(请编辑您的问题并将其添加到那里),您可以这样做 select("01") # assumes there are no other select boxes with that option on the page 或者你可以这样做 find('select[data-reactid=".0.0.1.1.2.1.$0.0.2.0.1"]').select("01") 这只是的缩写 find('select[data-reactid=".0.0.1.1.2.1.$0.0.2.0.1"]').find(:option, "01").select_option 注意: within '#.0.0.1.1.2.1.$0.0.2.0.1' 不会执行任何操作,因为 inside 采用 css 选择器,并且您的所有元素都没有 id '#.0.0.1.1.2.1.$0.0.2.0.1' ( data-reactid 不是ID ) 。 最重要的是,所写的选择器是无效的,如果具有该 id 的元素存在,则可能需要 within '#\.0\.0\.1\.1\.2\.1\.\$0\.0\.2\.0\.1'
在 selenium webdriver 中将 chrome 'devtools.open_docked' 设置为 false
我希望在将 selenium 与水豚一起使用时,chrome 开发工具能够与窗口分离地打开。 当前 devtools 连接到右侧(默认)。 我正在使用以下代码: 卡皮布...
BraintreeError:此时无法联系网关(仅在系统/集成规范期间)
最初来自https://github.com/braintree/braintree-web/issues/296 一般信息 将 Braintree-web gem 与 Spree 商店结合使用 SDK版本:3.2.0 环境:使用rspec的测试环境 乙...
Ruby VCR 测试未捕获来自 sinatra 的 http 调用
我有一个 Sinatra 应用程序,其中包含以下调用; 得到 '/test' 做 @res = Net::HTTP.get_response(URI('http://www.iana.org/domains/reserved')) erb:测试 结尾 有风景; <%= @res.
在 Rails 应用程序中使用 Selenium WebDriver 和 Capybara 时出错
我正在使用 Rails 6.1 和 ruby 2.6.5,并且正在为 Active Admin 新页面创建测试,我发现测试这个新页面的最佳方法是使用 gems Capybara、Webdrivers 和 Selenium-Webdrive ...
每个 capybara/selenium 4 测试的格式错误的请求
从 selenium 3 升级到 4 后,每个功能测试都会触发两个无效请求,puma 会记录以下错误: 2024-02-06 09:38:36 -03 HTTP 解析错误,格式错误的请求:# 从 selenium 3 升级到 4 后,每个功能测试都会触发两个无效请求,并且 puma 会记录以下错误: 2024-02-06 09:38:36 -03 HTTP parse error, malformed request: #<Puma::HttpParserError: Invalid HTTP format, parsing fails. Are you trying to open an SSL connection to a non-SSL Puma?> 这就是 chromedriver 的配置方式: Capybara.register_driver :chrome do |app| options = Selenium::WebDriver::Chrome::Options.new( args: [ 'headless=new', 'no-sandbox', '--window-size=2560,1440', '--disable-web-security', '--allow-running-insecure-content', "--enable-logging", # Enables logging "--log-level=0", # Enables all logging "--v=1" # Sets the verbosity level of logging ] ) options.add_option('goog:loggingPrefs', { browser: 'ALL' }) Capybara::Selenium::Driver.new(app, browser: :chrome, options: options) end 我无法识别这些请求是什么? 关于如何摆脱它们或如何调试这些请求有什么想法吗? -- 2024 年 9 月更新 仍然没有弄清楚这一点,并且在将 chromedriver 从 127 升级到 128 后开始出现相同的错误。 此外,每个第一个功能测试都会失败,并显示一条消息 This site can't be reached。 更新 将服务器从 puma 更改为 webrick 将消除警告,但第一个功能测试仍然失败,并出现 This site can't be reached 错误 了解 HTTP 解析错误 错误信息 HTTP 格式无效,解析失败。您是否正在尝试打开与非 SSL Puma 的 SSL 连接?表明正在使用的 HTTP 和 HTTPS 协议之间存在不匹配。如果在需要 HTTP 时尝试使用 HTTPS 连接到 Puma 服务器,则经常会发生这种情况,反之亦然。 调试步骤 检查服务器配置: 如果您通过 HTTP 访问 Puma 服务器,请确保不会无意中配置 SSL/TLS。验证您在测试设置中使用的协议是否正确。 水豚配置: 仔细检查您如何设置应用程序服务器以及您在测试中使用的 URL。确保您始终使用 HTTP 或 HTTPS。 检查网络流量: 使用网络监控工具检查测试期间发出的请求。浏览器开发工具可以帮助您查看加载测试环境时正在触发哪些请求。 记录: 增加 Puma 服务器和 Chrome 选项中的日志记录详细程度: 在 Puma 方面,调整 Puma 配置中的日志记录级别 文件或启动命令。 对于 Chrome 日志记录,您已经设置了高详细程度,但是 确保您查看指定目录中生成的日志。 潜在的修复 禁用 SSL 验证: 如果您正在针对非 SSL 端点进行测试,但具有 SSL 配置,则可能需要在请求中禁用 SSL 验证: options.add_argument('--ignore-certificate-errors') options.add_argument('--allow-insecure-localhost') 使用Webrick: 由于切换到 Webrick 目前可以消除该错误,因此在使用 Puma 进一步调查时可以考虑暂时使用它。这不是一个长期的解决方案,但它可以帮助隔离问题。 更新 Gem 依赖项: 确保您的所有 Ruby gem 均已更新,尤其是与 Capybara、Selenium 和 Puma 相关的那些。有时不兼容可能会导致问题。 检查您的测试环境: 如果第一次测试失败并显示“无法访问此站点”,请确保在运行测试之前正确启动应用程序服务器。增加依赖于服务器响应的测试的等待时间也可能是值得的。 降级 ChromeDriver: 如果问题是在 ChromeDriver 升级后出现的,请考虑在调试问题时暂时将 ChromeDriver 降级回版本 127。 水豚配置示例 以下是重组水豚配置的方法: Capybara.register_driver :chrome do |app| options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless=new') options.add_argument('--no-sandbox') options.add_argument('--window-size=2560,1440') options.add_argument('--disable-web-security') options.add_argument('--allow-running-insecure-content') options.add_argument('--ignore-certificate-errors') options.add_argument('--allow-insecure-localhost') options.add_option('goog:loggingPrefs', { browser: 'ALL' }) Capybara::Selenium::Driver.new(app, browser: :chrome, options: options) end 结论 继续执行这些调试步骤和建议的配置。如果这些方法都不能解决问题,请提供更具体的详细信息,例如您的 Puma 服务器配置、如何在测试环境中启动服务器,以及 Puma 和 Chrome 的输出日志。这将有助于进一步找出根本原因。
在 Tailwind 伪类名上使用 Capybara 查找 css 选择器
假设我有一个带有 Tailwind 类样式的单选按钮 我可以找到与水豚匹配的元素...
我正在为我的文章表单编写功能规范。 在一项测试中,我让 RSpec 使用标签查找某些表单输入: 期望(find_field(“标题”)).to_not be_nil 现在我想知道是否...
我有这样的方法: def self.click_button(标签) 选择器=“菜单.工具栏” page.within(选择器) 执行 page.click_link(标签) 结尾 结尾 在水豚 1.1.2(古代)上它工作正常,在
我正在尝试仅使用 Capybara 和 Rspec 提交没有按钮的表单(没有 Cucumber 或 Selenium,我知道已经有一个关于此的问题)。 我已经看到有一个要点是向子添加方法...
我的 Rails 集成测试失败了,我不明白为什么。我使用 Capybara 和 Selenium 作为驱动程序。 该测试检查 AJAX 调用后页面内容是否已被删除
Capybara 不访问 Rails 7.2 应用程序内的路线
我一直使用 Capybara 与 Rspec 以及 Rails 4、5 和 6(在没有 Selenium 的 Docker 容器内)来运行端到端测试。 现在,在 Rails 7.2 中,相同的测试失败了,因为 Capybara,我...
我正在尝试让 Capybara 在一个简单的 Ruby 脚本中运行——即没有/在 Rails 之外。这是脚本: 需要“红宝石” 需要“水豚” 需要“水豚/dsl” 包括水豚 卡皮...
在运行一个测试场景和另一个测试场景之间,默认的 Capybara 设置会打开空白页面并清除前一个场景中的 Cookie,从而消除第一个测试场景中记录的会话
如何使用水豚/selenium/chrome跳过“选择搜索引擎”
当我从水豚中打开 Chrome 时,我会看到以下屏幕: 这是 imgur 上的图像,因为堆栈溢出图像对我不起作用:https://i.imgur.com/UE9teHL.png 这会导致我的规格出现错误,...
SitePrism 有时找到元素,有时找不到,而 Capybara 可以
我正在使用 Capybara 和 Selenium 来测试我的网站。我还使用 Site Prism 作为页面对象模型。我现在可以让一切正常工作,但是,我不明白为什么有时会对页面进行操作