如何获取page_object元素的html源代码?

时间:2012-12-19 09:46:00

标签: ruby cucumber watir-webdriver pageobjects page-object-gem

想象一下,我有一个div(用Watir语言):

@browser.div(:id, 'home_slideshow')

我需要里面的html代码做一些“魔法正则表达式”:)。获取div html代码的方法可能是:

the_div_html = @browser.div(:id, 'home_slideshow').html

确定。我正在使用page_object gem并假设我将div作为元素,例如:

div(:slide_show, :id => 'home_slideshow')

要获取内部的html,我可以使用:

the_div_html = slide_show_element.html

...但我得到了弃权警告:

*** DEPRECATION WARNING
*** You are calling a method named attribute_value at home_page.rb:80:in `get_slide_code'.
*** This method does not exist in page-object so it is being passed to the driver.
*** This feature will be removed in the near future.

如何使用page_object元素获取html代码?正如我之前提出的一些类似的问题,确定答案是如此简单,但我看看Cheezy书,整个stackoverflow和页面对象rubydoc信息,我没有找到它。你能告诉我的方式吗?

提前谢谢!

3 个答案:

答案 0 :(得分:5)

slide_show_element.html应返回元素HTML。是吗?

弃用警告仅表示页面对象api尚不支持#html方法。您应该在此处申请:https://github.com/cheezy/page-object/issues?state=open

答案 1 :(得分:4)

作为临时解决方法,您可以使用.element直接访问watir-webdriver元素。

以下内容将为您提供不带折旧警告的html:

slide_show_element.element.html

答案 2 :(得分:3)

我将在下一个版本中将此方法添加到gem中。