你好,亲爱的Stackoverflowers。

我的水豚测试遇到了一些严重的烦人的麻烦。它似乎有自己的想法,有时会决定以零问题运行,有时会决定不查找元素,单击任何内容,通常只是吸吮。我不知道为什么会这样。

我已经进行了数天的研究,试图确定自己的逻辑,找到查找和单击元素或填写字段的“最佳”方法,但此后再也没有做过。请帮助,如果我仍然有头发,我会把它拔出来。

另外,我正在使用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: "[email protected]"
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: "[email protected]"
    fill_in "Password", with: "boarder1"
    find("#signIn").click
    expect(page).to have_content "[email protected]"
    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 "[email protected]"
    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 "[email protected]"
    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 "[email protected]"
    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 "[email protected]"
    page.driver.browser.close
  end
  find(:xpath, "//a[@href='#carTransfer1Day1']").click

最佳答案

有帮助的一件事是在水豚测试中使用save_and_open_page。这样,您可以打开测试页的html源,并验证您的html ID和类是否确实存在/是否以您认为的方式呈现。当我做嵌套表单并将html动态添加到页面时,对我而言尤其如此。

关于ruby-on-rails - capybara :有时找到元素,有时找不到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29975620/

10-14 12:15