为了账号安全,请及时绑定邮箱和手机立即绑定

如何在量角器中找到下一个元素?

如何在量角器中找到下一个元素?

桃花长相依 2022-08-04 09:34:25
鉴于我有以下HTML代码:<div class="someGenericClass">   <input name="someGenericName">   <label>not important</label></div><div class="someGenericClass">   <input name="someGenericName">   <label>not important</label></div><div class="someGenericClass">   <input name="someGenericName">   <label>Text I need to find in my test</label></div>在这种情况下,如何查找标签文本?它没有属性。我试图找到第一个元素,然后是下一个元素,但我错过了一些东西:element(by.name('someGenericName')).element(by.xpath('following::label'));还尝试了: element(by.name('someGenericName')).element(by.xpath('following-sibling::label'));编辑:该类不是唯一的。它在 DOM 中被多次使用。如果 DOM 将发生更改,会发生什么情况? 这似乎是一个坏主意,对吧?element.all
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

元素.所有应该工作正常


HTML View


<div id='id1' class="parent">

  <ul>

    <li class="foo">1a</li>

    <li class="baz">1b</li>

  </ul>

</div>

<div id='id2' class="parent">

  <ul>

    <li class="foo">2a</li>

    <li class="bar">2b</li>

  </ul>

</div>


Code


let foo = element.all(by.css('.parent')).all(by.css('.foo'));

expect(foo.getText()).toEqual(['1a', '2a']);

let baz = element.all(by.css('.parent')).all(by.css('.baz'));

expect(baz.getText()).toEqual(['1b']);

let nonexistent = element.all(by.css('.parent'))

  .all(by.css('.NONEXISTENT'));

expect(nonexistent.getText()).toEqual(['']);


// Or using the shortcut $$() notation instead of element.all(by.css()):


let foo = $$('.parent').$$('.foo');

expect(foo.getText()).toEqual(['1a', '2a']);

let baz = $$('.parent').$$('.baz');

expect(baz.getText()).toEqual(['1b']);

let nonexistent = $$('.parent').$$('.NONEXISTENT');

expect(nonexistent.getText()).toEqual(['']);

element.all 返回一个 promise 数组。您可以迭代数组和链接以查找位于输入标记后面的标签。


查看完整回答
反对 回复 2022-08-04
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信