获取元素位置的页面对象方法

时间:2013-05-23 18:50:33

标签: webdriver selenium-webdriver watir-webdriver page-object-gem

我需要使用cooresponding页面对象方法获取元素坐标(位置)。 现在我使用以下方法来获取它:

- myelementname_element.wd.location[0] --> to get X
- myelementname_element.wd.location[1] --> to get Y

但我经常收到以下警告:

弃权警告

  
      
  • 您正在d:/ JenkinsWorkspace / jenkins /...上调用名为wd的方法。
  •   
  • 此方法在页面对象中不存在,因此将其传递给驱动程序。
  •   
  • 此功能将在不久的将来删除。
  •   
  • 请更改您的代码以调用正确的页面对象方法。
  •   

您能帮助我并向我提供相应的页面对象方法吗?

TIA, ANNA

1 个答案:

答案 0 :(得分:2)

要使用watir-webdriver(或selenium-webdriver)元素支持的方法,而不是page-object-gem元素直接支持的方法,您需要先获取本机元素。这是通过调用page-object-gem元素的element方法完成的:

myelementname_element.element

如您所见,您可以通过以下方式获取三个不同的gem元素类:

puts page.myelementname_element.class
#=> PageObject::Elements::TextField

puts page.myelementname_element.element.class
#=> Watir::TextField

puts page.myelementname_element.element.wd.class
#=> Selenium::WebDriver::Element

对于您的具体示例,您希望这样做:

myelementname_element.element.wd.location[0]
myelementname_element.element.wd.location[1]