‹ 首页

capybara-skill

@lambdatest · 收录于 1 周前 · 上游提交 4 周前★ 社区精选

Generates Capybara E2E tests in Ruby with RSpec integration. Acceptance testing DSL for web apps. Use when user mentions "Capybara", "visit", "fill_in", "click_button", "Ruby E2E". Triggers on: "Capybara", "Ruby acceptance test", "fill_in", "click_button", "have_content".

适合你,如果要用 Ruby 和 Capybara 写 Web 应用的 E2E 测试

/ 通过 npx 安装 校验哈希
npx oh-my-skill add lambdatest/agent-skills/capybara-skill
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- lambdatest/agent-skills/capybara-skill
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify lambdatest/agent-skills/capybara-skill
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
323GitHub stars
~761最小装载
~3.5K含声明引用
~4K文本包总量
索引托管

怎么用

技能原文 SKILL.md作者撰写 · MIT · 54824d6

Capybara Automation Skill

Core Patterns
Basic Test (RSpec)
require 'capybara/rspec'

RSpec.describe 'Login', type: :feature do
  it 'logs in with valid credentials' do
    visit '/login'
    fill_in 'Email', with: 'user@test.com'
    fill_in 'Password', with: 'password123'
    click_button 'Login'
    expect(page).to have_content('Dashboard')
    expect(page).to have_current_path('/dashboard')
  end

  it 'shows error for invalid credentials' do
    visit '/login'
    fill_in 'Email', with: 'wrong@test.com'
    fill_in 'Password', with: 'wrong'
    click_button 'Login'
    expect(page).to have_content('Invalid credentials')
  end
end
DSL
# Navigation
visit '/path'
go_back
go_forward

# Interacting
fill_in 'Label or Name', with: 'text'
choose 'Radio Label'
check 'Checkbox Label'
uncheck 'Checkbox Label'
select 'Option', from: 'Select Label'
attach_file 'Upload', '/path/to/file'
click_button 'Submit'
click_link 'More Info'
click_on 'Button or Link'

# Finding
find('#id')
find('.class')
find('[data-testid="x"]')
find(:xpath, '//div')
all('.items').count

# Matchers
expect(page).to have_content('text')
expect(page).to have_selector('#element')
expect(page).to have_css('.class')
expect(page).to have_button('Submit')
expect(page).to have_field('Email')
expect(page).to have_link('Click Here')
expect(page).to have_current_path('/expected')
expect(page).to have_no_content('error')
Within Scope
within('#login-form') do
  fill_in 'Email', with: 'user@test.com'
  click_button 'Login'
end

within_table('users') do
  expect(page).to have_content('Alice')
end
TestMu AI Cloud
Capybara.register_driver :lambdatest do |app|
  caps = Selenium::WebDriver::Remote::Capabilities.new(
    browserName: 'chrome',
    'LT:Options' => {
      user: ENV['LT_USERNAME'], accessKey: ENV['LT_ACCESS_KEY'],
      build: 'Capybara Build', name: 'Login Test',
      platform: 'Windows 11', video: true
    }
  )
  Capybara::Selenium::Driver.new(app,
    browser: :remote,
    url: 'https://hub.lambdatest.com/wd/hub',
    capabilities: caps)
end
Capybara.default_driver = :lambdatest
Setup: gem 'capybara' + gem 'selenium-webdriver' in Gemfile
Run: bundle exec rspec spec/features/
Cloud (TestMu AI)

For remote browser execution, see [reference/cloud-integration.md](reference/cloud-integration.md) and [shared/testmu-cloud-reference.md](../shared/testmu-cloud-reference.md).

Deep Patterns

See reference/playbook.md for production-grade patterns:

| Section | What You Get | |---------|-------------| | §1 Project Setup | Gemfile, Capybara config, driver registration, LambdaTest | | §2 Feature Specs | Login flows, JavaScript interactions, modals, async content | | §3 Page Objects | SitePrism pages with elements/sections, usage in specs | | §4 API Testing | Request specs with auth headers, JSON assertions | | §5 Database Cleaning | DatabaseCleaner transaction/truncation strategies | | §6 Matchers & Helpers | Custom helpers, sign_in, expect_flash | | §7 CI/CD Integration | GitHub Actions with Postgres, Redis, Chrome | | §8 Debugging Table | 12 common problems with causes and fixes | | §9 Best Practices | 14-item Capybara testing checklist |

按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。