水豚 - 闹鬼和硒
Capybara - Poltergeist and Selenium
我正在使用 Cucumber 进行 运行 测试,我同时使用 PhantomJS (poltergeist) 和 Selenium WebDriver。我的一项测试是从超链接重定向到新的 window。
有没有一种方法可以写入我的步骤定义以导航到 window 说:如果使用 Poltergeist,运行 这行代码 else 运行 这行(默认为硒)?:
示例:
在 Selenium 浏览器中时:
within_window(->{ page.title == 'Title' }) do
expect(current_url).to eq('URL')
page.driver.browser.close
end
在恶作剧中时:
new_window = window_opened_by { click_link 'Something' }
within_window new_window do
# code
end
您可以根据 Capybara.current_driver
的值设置条件
if Capybara.current_driver == :selenium
do the selenium things
else
do the poltergeist things
end
我成功了,但我没有正确实现 Poltergeist 的代码。我的代码是:
if Capybara.default_driver == :selenium
within_window(->{ page.title == 'TITLE' }) do
expect(current_url).to eq('URL')
page.driver.browser.close
end
else
sleep 1
new_window = page.driver.browser.window_handles.last
within_window new_window do
expect(current_url).to eq('URL')
end
end
非常感谢 Tom Walpole,非常感谢您的帮助
我正在使用 Cucumber 进行 运行 测试,我同时使用 PhantomJS (poltergeist) 和 Selenium WebDriver。我的一项测试是从超链接重定向到新的 window。
有没有一种方法可以写入我的步骤定义以导航到 window 说:如果使用 Poltergeist,运行 这行代码 else 运行 这行(默认为硒)?:
示例:
在 Selenium 浏览器中时:
within_window(->{ page.title == 'Title' }) do
expect(current_url).to eq('URL')
page.driver.browser.close
end
在恶作剧中时:
new_window = window_opened_by { click_link 'Something' }
within_window new_window do
# code
end
您可以根据 Capybara.current_driver
的值设置条件if Capybara.current_driver == :selenium
do the selenium things
else
do the poltergeist things
end
我成功了,但我没有正确实现 Poltergeist 的代码。我的代码是:
if Capybara.default_driver == :selenium
within_window(->{ page.title == 'TITLE' }) do
expect(current_url).to eq('URL')
page.driver.browser.close
end
else
sleep 1
new_window = page.driver.browser.window_handles.last
within_window new_window do
expect(current_url).to eq('URL')
end
end
非常感谢 Tom Walpole,非常感谢您的帮助