2012-09-20 31 views
0

您好我是使用Ruby在Selenium上編程的新手,我遇到了一些麻煩。我想從另一個模塊中的類調用方法,所以我可以創建一種方法庫,每當我返回錯誤NoMethodError: undefined method 'find_element' for Selenium::WebDriver:Module我有require_relative「LeadForm」要求其他模塊和代碼正常工作,當我把該方法直接進入類我正在使用它,但我真的很想只寫一次,因爲這是我會用很多東西。Selenium :: WebDriver的未定義方法'find_element':使用另一個模塊的方法時的模塊

的代碼是

高清self.progCNA

硒:: webdriver的::支持:: Select.new(@ driver.find_element(:姓名, 「area_of_study」))select_by。 (:text,「Health & Medical/Nursing」) Selenium :: WebDriver :: Support :: Select.new(@ driver.find_element(:name, 「concentration」))。select_by(:text,「Nursing Assistant( CNA)「)

end

,當我把它的類運行我把

LeadForm.progCNA

測試,它似乎承認和運行方法,但隨後的方法錯誤出。

任何幫助將不勝感激,因爲這已經成爲很多挫折的來源,我不能在我的生活中找到一個在線解決方案。我擡頭,俯視和側身。如果您需要我提供更多信息,請告訴我,我會盡快給您!非常感謝你。

我使用 的Windows 7專業版SP1的 JetBrains公司的RubyMine 4.5.3 的Ruby 1.9.3 硒的webdriver 2.25.0

+0

你怎麼實例化@driver? – grumpasaurus

+0

DEF設置 @driver =硒:: WebDriver.for:火狐 @ driver.manage.timeouts.implicit_wait = 10 @verification_errors = [] 端 把,在主類的開始我使用。我也嘗試在其他類或方法中放入'@driver = Selenium :: WebDriver.for:firefox',但除了打開另一個WebDriver實例外,它沒有改變任何東西。 @艾倫周 –

+0

啊。所以你在uh「main.rb」實例化@driver類變量,然後期望其他類能夠獲得變量? – grumpasaurus

回答

1

如果我瞭解的情況,我認爲你有一個變量範圍的問題。

如果你想使你的類結構,事情是這樣的,我會更新你的方法...

高清self.progCNA(駕駛員)

硒:: webdriver的::支持:: Select.new(driver.find_element(:name, 「area_of_study」))。select_by(:text,「Health & Medical/Nursing」) Selenium :: WebDriver :: Support :: Select.new(driver.find_element (:name, 「concentration」))。select_by(:text,「Nursing Assistant(CNA)」)

...與

LeadForm.progCNA(@driver)

你可以把它...使一個$驅動程序全局而不是...

+0

非常感謝!我知道必須有一個簡單的答案,我已經長時間甩了我的頭,最終我放棄了。使用$ driver使得它完全運行。非常感謝您的幫助! –

0
WebElement element = driver.find_Element(:xpath=>regisCodePath) 
String passcode=element.getAttribute('value'); 
+3

請詳細說明。這是如何回答這個問題的? –

相關問題