Selenium 中的页面对象 Ruby

Page Objects in Selenium with Ruby

我熟悉使用 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" 属性。请尝试 name: "firstname"

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

Firstname = {name: "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"

或者更面向对象的方式:

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"