我是新來PageObject(和紅寶石)...PageObject寶石 - 警報彈出不被處理
我有當沒有提供用戶ID處理警報彈出的問題。
下面是代碼和情景:
當我點擊,而無需用戶ID,然後我期待有一個消息,我在我的劇本我驗證警報按鈕「符號」。
目前我得到一個錯誤: NoMethodError: undefined method
警報」的零:NilClass`
黃瓜然後聲明: 然後我看到一個彈出消息 '輸入卡號'
步驟定義: `
Then(/^I should see an popup message "([^"]*)"$/) do |popup_msg|
on(LoginPage).alert_msg
end
***Page object code:***
class LoginPage
require_relative 'common'
include PageObject
include Common
text_field(:collector, :id => 'j_col')
text_field(:password, :id => 'j_password1')
button(:sign_in, :value => 'Sign in')
def login_to_nectar (collector = FigNewton.collector.colid, password = FigNewton.collector.password)
self.collector = collector
self.password = password
sign_in
end
span(:pwd_error_msg, :css => 'p.error-message')
def alert_msg
message = @curr_page.alert do
sign_in.click
end
message.should == 'enter card numbe'
@alert_msg
end
end
`
....最新信息....進步
@Johnson感謝...我現在得到的錯誤:
Selenium::WebDriver::Error::UnhandledAlertError: Modal dialog present: "enter card number. "
我可以看到PageObject正在處理彈出窗口。我下面的新代碼:
def alert_msg
alert do
self.sign_in.click
end
@alert_msg
end
我在步驟驗證消息使之前調用此步驟定義....
When(***without a card number$/) do
on(HomePage).click_login
on(LoginPage).login_to_nectar('', FigNewton.collector.password)
@current_page.**alert_msg**
end
Then***
on(LoginPage).**alert_msg**.should == popup_msg
end
約翰遜感謝指向我在正確的方向......但是現在我收到以下錯誤: – Asif 2014-09-30 07:40:34
現在問題的答案是?我不清楚身份是什麼。 – 2014-10-01 22:51:34
是的,這是...在我做了最初的改變之後,得到了模態相關的錯誤。我在我的頁面類中實現了我的login_to_nectar方法調用了'sign_in'元素,因此實際上這被調用了兩次(第二次在alert_msg方法中)。我把它從'login_to_nectar方法中解放出來,一切正常。 – Asif 2014-10-03 08:13:19