我试图使用Watir单击一个元素,但我不确定调用页面对象访问器是什么。我几乎测试了所有这些。
这是点击元素时显示的HTML:
<details open>
<summary>Search your employers</summary>
如果我还没有点击它,HTML就是:
<details>
<summary>Search your employers</summary>
我知道如何让脚本点击页面元素,但我不知道如何定义这个页面对象访问器。我猜我会通过调用类似的东西来识别它:
[pageobject](:test, :name => 'Search your employers')
答案 0 :(得分:1)
您正在寻找的内容实际上称为accessor。页面对象是表示页面的类。访问器是帮助创建与页面上的元素交互的方法的方法。
由于元素是details
元素,您希望使用相应的访问器,也称为details
。有时候查看source code有助于查看基本元素的访问器没有出现在文档中。
根据您提供的内容,您的页面对象和访问者可以定义为:
class MyPage
include PageObject
details(:test, text: 'Search your employers')
end
但是,这假设details
元素的文本正好是“搜索您的雇主”。这不太可能是正确的,因为details
元素的要点是要显示/隐藏其他元素。
如果起始文本足够独特,您可以执行以下操作:
details(:test, text: /^Search your employers/)
虽然工作量更大,但我更倾向于更具体,并查找包含具有指定文本的details
元素的summary
元素。这可以使用block
:
details(:test) { summary_element(text: 'Search your employers').parent }
或者使用XPath:
details(:test, xpath: '//details[./summary[text() = "Search your employers"]]')