1

こんにちは私はRubyを使用してSeleniumで作業するプログラミングに不慣れで、問題が発生しています。別のモジュールのクラスからメソッドを呼び出そうとしているので、ある種のメソッドライブラリを作成できます。エラーが返されるたびにNoMethodError: undefined method 'find_element' for Selenium::WebDriver:Module、他のモジュールを要求するためにrequire_relative "LeadForm"があり、コードを配置するとコードが正しく機能します。メソッドを使用しているクラスに直接メソッドしますが、これは私が頻繁に使用するものなので、一度だけ記述してもらいたいと思います。

コードは

def self.progCNA

Selenium :: WebDriver :: Support :: 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

メソッドを認識して実行しているように見えますが、メソッドはエラーになります。

これは多くの欲求不満の原因であり、私は一生の間オンラインで解決策を見つけることができないので、どんな助けでも大いに感謝されます。私は上、下、横を見てきました。私からの情報がさらに必要な場合はお知らせください。できるだけ早くお知らせします。どうもありがとうございます。

Windows 7 Pro sp1 JetBrains RubyMine 4.5.3 Ruby 1.9.3selenium-webdriver2.25.0を使用しています

4

2 に答える 2

2

私が状況を理解しているなら、あなたは可変スコープの問題を抱えていると思います。

クラス構造をそのままにしておきたい場合は、メソッドを次のように更新します...

def self.progCNA(ドライバー)

Selenium :: WebDriver :: Support :: 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)

代わりに...$driverをグローバルにすることができます...

于 2012-10-29T18:36:09.530 に答える
0
WebElement element = driver.find_Element(:xpath=>regisCodePath)
String passcode=element.getAttribute('value');
于 2014-09-04T06:56:04.767 に答える