您好我是使用Ruby编写Selenium编程的新手,我遇到了一些麻烦。我试图从另一个模块中的类调用一个方法,所以我可以创建一种方法库,每次我返回错误NoMethodError: undefined method 'find_element' for Selenium::WebDriver:Module
我有require_relative“LeadForm”要求其他模块和代码工作当我把这个方法直接放到我正在使用它的类中时,我真的很想把它写成一次,因为这是我将要使用的很多东西。
代码是
def self.progCNA
硒::的webdriver ::支持:: Select.new(@ driver.find_element(:姓名, “area_of_study”))。select_by(:text,“Health& Medical / Nursing”) 硒:: webdriver的::支持:: Select.new(@ driver.find_element(:名称, “浓度”))。select_by(:文字,“护理助理(CNA)”)
端
当我在运行测试的类中调用它时,我将
LeadForm.progCNA
它似乎识别并运行该方法,但随后方法出错。
任何帮助都会非常感激,因为这是一个令人沮丧的源头,我不能为我的生活找到一个在线解决方案。我抬头,向下和侧身。如果您需要我的更多信息,请告诉我,我会尽快给您的!非常感谢你。
我正在使用 Windows 7 Pro sp1 JetBrains RubyMine 4.5.3 Ruby 1.9.3 selenium-webdriver 2.25.0
答案 0 :(得分:2)
如果我了解情况,我认为你有一个可变范围问题。
如果你想保持你的课程结构,我会用...更新你的方法。
def self.progCNA(驱动程序)
硒::的webdriver ::支持:: Select.new(driver.find_element(:姓名, “area_of_study”))。select_by(:text,“Health& Medical / Nursing”) 硒:: webdriver的::支持:: Select.new(driver.find_element(:名称, “浓度”))。select_by(:文字,“护理助理(CNA)”)
端
...并用
调用它LeadForm.progCNA(@driver)
你可以......在全球范围内创建一个$ driver ...
答案 1 :(得分:0)
WebElement element = driver.find_Element(:xpath=>regisCodePath)
String passcode=element.getAttribute('value');