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

Webdriver 获取元素位置的页对象方法,webdriver,selenium-webdriver,watir-webdriver,page-object-gem,Webdriver,Selenium Webdriver,Watir Webdriver,Page Object Gem,我需要使用页面对象方法获取元素坐标(位置)。 现在我使用以下方法来获得它: - myelementname_element.wd.location[0] --> to get X - myelementname_element.wd.location[1] --> to get Y 但我不断得到以下警告: 弃用警告 您正在d:/JenkinsWorkspace/jenkins/…处调用名为wd的方法 页面对象中不存在此方法,因此正在将其传递给驱动程序 此功能将在不久的将来删除 请

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

- myelementname_element.wd.location[0] --> to get X
- myelementname_element.wd.location[1] --> to get Y
但我不断得到以下警告:

弃用警告

  • 您正在d:/JenkinsWorkspace/jenkins/…处调用名为wd的方法
  • 页面对象中不存在此方法,因此正在将其传递给驱动程序
  • 此功能将在不久的将来删除
  • 请更改代码以调用正确的页面对象方法
你能帮我提供相应的页面对象方法吗

蒂亚,
ANNA

要使用watir webdriver(或selenium webdriver)元素支持但页面对象gem元素不直接支持的方法,您需要首先获取本机元素。这是通过调用页面对象gem元素的
元素
方法完成的:

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]

奇怪的“wd”只是“.driver”的别名,从Rdoc可以看出,page对象对这两者都没有方法。看起来您所做的是非常正确的,因为您希望它能够传递给webdriver