Skip to content

支持watir webdriver及selenium webdriver

easonhan edited this page May 24, 2013 · 5 revisions

page-object gem可以通过watir-webdriverselenium-webdriver来操作浏览器。你可以在PageObject的构造函数来配置具体使用哪一个。

browser = Watir::Browser.new :firefox
registration_page = RegistrationPage.new(browser)

browser = Selenium::Webdriver.for :firefox
registration_page = RegistrationPage.new(browser)

page-object gem实现了两个类库的兼容,以便其能无缝切换。

定位元素

Watir 和Selenium 定位页面元素的方式是有所不同的。 我们在page object中实现了一些功能去消除这些差异。下面是那些显而易见的区别。

  • 在定位元素的时候Watir支持多个定位器(locator),而Selenium只支持一个。通过page-object,你可以在使用Selenium的时候提供多个参数。
  • 在定位元素的时候Watir提供了:index定位器,但是Selenium不支持。通过page-object,你可以在使用Selenium的时候使用:index
  • 在Selenium中你无法通过:href属性去定位链接,而Watir则是可以的。通过page-object,你可以在使用Selenium的用:href属性去定位链接了。
  • Watir支持通过:text属性来寻找hidden field,Selenium则不行。page-object为Selenium添加了这个功能。
  • Watir不支持使用:name属性来定位div, span, table, table data, ordered lists, unordered lists 及 list items,但是Selenium却是支持的。page-object为Watir添加了这个功能。