我已經通過水豚的崗位+點擊警戒框,但似乎沒有工作。以下是我的場景:Rspec +水豚:如何點擊警戒框
場景:當我點擊更新按鈕出現一個警告框,其中包含「確定」和「取消」按鈕。點擊「確定」,然後出現新表單。
我正在寫請求規格,即使用rspec和水豚。主要的問題是點擊提示框:以下是我的代碼:
context "update" do before(:all) do Capybara.current_driver = :selenium end after(:all) do Capybara.use_default_driver end it "update user to trainer" do click_button('Search') sleep 3 page.evaluate_script('data-confirm = function() { return true; }') page.click('OK') click_button('Upgrade') end end
但執行腳本給了我以下錯誤:
Failure/Error: page.evaluate_script('data-confirm = function() { return true; }') Selenium::WebDriver::Error::UnexpectedJavascriptError: invalid assignment left-hand side # ./spec/requests/user_upgrades_spec.rb:30
對於第二個例子即
page.driver.browser.switch_to.alert.accept
我的代碼:
context "update" do before(:all) do Capybara.current_driver = :selenium end after(:all) do Capybara.use_default_driver end it "update user to trainer" do click_button('Search') sleep 3 click_button('Upgrade') page.driver.browser.switch_to.alert.accept end end
我得到錯誤:
Failure/Error: page.driver.browser.switch_to.alert.accept Selenium::WebDriver::Error::UnhandledError:
請讓我知道如何着手進一步
你不能說出一個JavaScript用破折號變量。 'data-confirm = function ...'是非法的。它看起來像'(foo - bar)= function(){...}'。這是'左側#... user_upgrades_spec.rb:30'錯誤。用camelCase命名你的JavaScript變量。 –
http://stackoverflow.com/questions/27384040/test-alert-dialog-text-using-capybara-webkit-1-3-1 –