这两个 gem "site_prism" 和 "page_object" 之间的区别

Difference between these two gems "site_prism" and "page_object"

我遇到了两个项目,一个是 WATIR cucumber feature filesstep definitions,另一个是 Rspeccapybara`` without步骤定义and特征文件`.

WATIR 中使用了项目 page_object,在 capybara 中使用了 site_prism gem

  1. 两者有什么区别?
  2. 我们不能在 capybara 中使用 page_object 这样的方法不正确吗?为什么?

两者之间的主要区别在于支持的底层驱动程序,这是与浏览器实际交互的部分。

  • SitePrism 支持水豚。
  • 页面对象支持 Watir-Webdriver 和 Selenium-Webdriver。

由于每个 gem 都对驱动程序的 API 进行了假设,因此您不能使用不受支持的驱动程序 - 即您不能将 Page-Object gem 与 Capybara 一起使用。

除此之外,主要是API喜好。 gem 都用于创建页面对象模型。但是,定义页面对象的语法和页面对象具有的方法将根据每个 gem 作者的偏好而有所不同。