使用Ruby的Selenium页面对象

使用Ruby的Selenium页面对象,ruby,selenium-webdriver,pageobjects,Ruby,Selenium Webdriver,Pageobjects,我熟悉使用Ruby的Watir Webdriver中的页面对象,但现在我尝试使用Ruby在Selenium Webdriver中定义页面对象,并面临以下问题。谁能帮忙吗 require "selenium-webdriver" require "page-object" Firstname = {id: "firstname"} @driver = Selenium::WebDriver.for :firefox @driver.get ("http://www.practiceseleni

我熟悉使用Ruby的Watir Webdriver中的页面对象,但现在我尝试使用Ruby在Selenium Webdriver中定义页面对象,并面临以下问题。谁能帮忙吗

require "selenium-webdriver"
require "page-object"

Firstname = {id: "firstname"}

@driver = Selenium::WebDriver.for :firefox
@driver.get ("http://www.practiceselenium.com/practice-form.html")
@driver.manage().window.maximize()
@driver.find_element(Firstname).send_keys "User1"
找不到元素:{method:id,selector:firstname}Selenium::WebDriver::Error::NoSuchElementError

指定的页面上没有id:firstname属性。请尝试名称:firstname:

或者以更面向对象的方式:

require "selenium-webdriver"
require "page-object"

class PraticeForm
  include PageObject

  page_url "http://www.practiceselenium.com/practice-form.html"
  text_field(:firstname, :name => 'firstname')
end

browser = Selenium::WebDriver.for :firefox
my_page_object = PraticeForm.new(browser)
my_page_object.goto

my_page_object.firstname = "User1"
require "selenium-webdriver"
require "page-object"

class PraticeForm
  include PageObject

  page_url "http://www.practiceselenium.com/practice-form.html"
  text_field(:firstname, :name => 'firstname')
end

browser = Selenium::WebDriver.for :firefox
my_page_object = PraticeForm.new(browser)
my_page_object.goto

my_page_object.firstname = "User1"