水豚:有时能找到元素,有时找不到
Capybara: Sometimes finds elements, sometimes doesn't
你好亲爱的 Whosebugers。
我的水豚测试遇到了一些非常烦人的麻烦。它似乎有自己的想法,有时会决定 运行 零问题,有时会决定不查找元素,单击任何内容,通常只是糟糕。我不知道这是为什么。
我已经研究了好几天,试图确定我的逻辑,找到 'best' 查找和单击元素或填写字段的方法,但没有取得任何进展。请帮忙,如果我还有头发,我会把它拔掉。
我还使用了 Selenium Web 驱动程序。所有宝石都是最新的。
提前致谢。
它会随机决定不点击 'Amtrak 1234' 并且有时会完全错过 find('#atedrop4').click 或者会决定点击我的测试中指定的甚至没有关闭的元素。我很困惑,迫切需要一些帮助。
it 'can view the itinerary print and export', js: true do
visit '/admin/login'
fill_in 'Email', with: "evan@tripwing.com"
fill_in 'Password', with: "guest"
click_button 'Login'
click_link 'Trips'
expect(page).to have_content 'Trips'
click_link('View Trip Page', match: :first)
new_window=windows.last
page.within_window new_window do
expect(page).to have_content 'A Test To Forget'
find('.showItinerary').click
expect(page).to have_content "DAY 1, AMSTERDAM"
find(:xpath, "//a[@href='#flight1day1']").click
expect(page).to have_content "SINGAPORE AIRLINES FLIGHT 326"
click_link 'Add to Calendar'
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
fill_in "Email", with: "evan@tripwing.com"
fill_in "Password", with: "boarder1"
find("#signIn").click
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#flight1day1']").click
find(:xpath, "//a[@href='#train1Day1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#train1Day1']").click
find(:xpath, "//a[@href='#carRentalDay1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#carRentalDay1']").click
find(:xpath, "//a[@href='#hotelDay1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#hotelDay1']").click
find(:xpath, "//a[@href='#carTransfer1Day1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#carTransfer1Day1']").click
在水豚测试中使用 save_and_open_page 会有帮助。这样您就可以打开测试页的 html 源并验证您的 html id 和 类 是否确实存在/是否按照您认为的方式呈现。当我做嵌套表单并动态添加 html 到页面时,这对我来说尤其如此。
你好亲爱的 Whosebugers。
我的水豚测试遇到了一些非常烦人的麻烦。它似乎有自己的想法,有时会决定 运行 零问题,有时会决定不查找元素,单击任何内容,通常只是糟糕。我不知道这是为什么。
我已经研究了好几天,试图确定我的逻辑,找到 'best' 查找和单击元素或填写字段的方法,但没有取得任何进展。请帮忙,如果我还有头发,我会把它拔掉。
我还使用了 Selenium Web 驱动程序。所有宝石都是最新的。
提前致谢。
它会随机决定不点击 'Amtrak 1234' 并且有时会完全错过 find('#atedrop4').click 或者会决定点击我的测试中指定的甚至没有关闭的元素。我很困惑,迫切需要一些帮助。
it 'can view the itinerary print and export', js: true do
visit '/admin/login'
fill_in 'Email', with: "evan@tripwing.com"
fill_in 'Password', with: "guest"
click_button 'Login'
click_link 'Trips'
expect(page).to have_content 'Trips'
click_link('View Trip Page', match: :first)
new_window=windows.last
page.within_window new_window do
expect(page).to have_content 'A Test To Forget'
find('.showItinerary').click
expect(page).to have_content "DAY 1, AMSTERDAM"
find(:xpath, "//a[@href='#flight1day1']").click
expect(page).to have_content "SINGAPORE AIRLINES FLIGHT 326"
click_link 'Add to Calendar'
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
fill_in "Email", with: "evan@tripwing.com"
fill_in "Password", with: "boarder1"
find("#signIn").click
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#flight1day1']").click
find(:xpath, "//a[@href='#train1Day1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#train1Day1']").click
find(:xpath, "//a[@href='#carRentalDay1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#carRentalDay1']").click
find(:xpath, "//a[@href='#hotelDay1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#hotelDay1']").click
find(:xpath, "//a[@href='#carTransfer1Day1']").click
click_link('Export to Calendar', match: :first)
find('.ategoogle').click
new_window=page.driver.browser.window_handles.last
page.driver.browser.switch_to.window(new_window) do
expect(page).to have_content "evan@tripwing.com"
page.driver.browser.close
end
find(:xpath, "//a[@href='#carTransfer1Day1']").click
在水豚测试中使用 save_and_open_page 会有帮助。这样您就可以打开测试页的 html 源并验证您的 html id 和 类 是否确实存在/是否按照您认为的方式呈现。当我做嵌套表单并动态添加 html 到页面时,这对我来说尤其如此。