我正在使用带有Cucumber的Protractor进行测试,但我无法获得一个元素,因为classname与其他类相同,并且没有其他属性。 我怎样才能得到这个元素? 元素是:“tileGrid内容”。 我不能使用xpath导致有时编辑页面。
这是我的html:
<div class="tileGrid content">
<div class="spacing-container undefined">
<div class="title">
<h3 class="h2 heading">External Services</h3>
</div>
</div>
</div>
感谢您的帮助。
答案 0 :(得分:0)
我想象你的结构类似于:
<div>
<div class="tileGrid content">
<div class="spacing-container undefined">
<div class="title">
<h3 class="h2 heading">External Services</h3>
</div>
</div>
</div>
<div class="tileGrid content">
<div class="spacing-container undefined">
<div class="title">
<h3 class="h2 heading">Other Header</h3>
</div>
</div>
</div>
<div class="tileGrid content">
<div class="spacing-container undefined">
<div class="title">
<h3 class="h2 heading">Another Header</h3>
</div>
</div>
</div>
...
</div>
有几种方法可以与这样的东西互动,但我只举三个例子:
这将查找在其父
中具有div标签的第一个子节点by.css('div div.content:nth-of-type(1)')
这将查找其父级
中具有任何标记的第一个子级by.css('div div.content:nth-child(1)')
这将查找h3
标记内的文字,并选择其上方3层的元素:
by.xpath('//*/h3[text()="External Services"]/../../..')
或者找到包含DIV
的{{1}},H3
的文字为H3
,如下所示:
External Services