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, "护理助理 (CNA)")

结尾

当我在运行测试的类中调用它时

LeadForm.progCNA

它似乎可以识别并运行该方法,但随后该方法出错。

任何帮助将不胜感激,因为这一直是很多挫折的根源,我无法终生在线找到解决方案。我向上、向下和侧身看。如果您需要我提供更多信息,请告诉我,我会尽快给您!非常感谢。

我正在使用 Windows 7 Pro sp1 JetBrains RubyMine 4.5.3 Ruby 1.9.3 selenium-webdriver 2.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, "护理助理 (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 回答