html – Watir:我如何找到一个元素,其中该元素的类及其父元素的类标识它?

html – Watir:我如何找到一个元素,其中该元素的类及其父元素的类标识它?,第1张

概述我有html喜欢 <div class="header"><div class="title">AAAAAAAAA</div></div><div class="body"> <div class="card"><div class="xxx"><div class="yyy"><div class="title">AAAAAAAAA</div></div></div></div> <d 我有HTML喜欢

<div ><div >AAAAAAAAA</div></div><div >  <div ><div ><div ><div >AAAAAAAAA</div></div></div></div>  <div ><div ><div ><div ><div >BBBBBBBBB</div></div></div></div></div></div>

我需要做什么(通过watir-webdriver)“让我获得带有’Title’类的元素,并使用文本’AAAAAAAAA’,这是一个带有’card’类元素的子元素”.在这个例子中,我想在第三行找到带有’Title’类的div.

它不足以说“给我带有文本’AAAAAAAAA’和’Title’类的元素”,因为该元素可能存在于DOM的其他地方.我必须能够通过它的属性及其父母来识别它.

我不知道该怎么做,真的很喜欢一些建议.

在watir-webdriver中,如果我写:

b.element(:class => "card").element(:class => "Title",:text => "BBBBBBBBB")

然后,从我所看到的,没有找到任何东西,因为元素(:class =>“card”)将匹配第3行的第一个卡元素,然后BBB …文本的匹配将失败,因为它唯一的AAA …在第一张卡下可用.

我虽然做了类似的事情

b.elements(:class => "card").each { |elem| ...etc }

找到我追求的子元素,但是当我找到子元素时,我不能轻易使用它.例如,我希望能够看到可见的?在它上面,但结果很难摆脱该代码块.我可以有一个我指定可见的局部变量?结果,或者我可以从块中抛出错误,但它不是我真正想要的.

我真正追求的是:

b.elements(:class => "card").element(:class => "Title",:text => "BBBBBBBBB").othermethods...

因此,第一个方法调用查找具有卡类的所有元素,然后在第二个方法中,它找到具有类“Title”和文本“BBBBBBBBB”的那些卡下的第一个元素.我知道卡片下只有一个带有“标题”类和文字“BBBBBBBBB”的元素.

但是,此功能不存在.有没有一种简单的方法来实现同样的目标?我真的很感激这里的一些指导.提前致谢.

解决方法 如果贾斯汀或Željko为你提出更好的解决方案我会不会感到惊讶(如果他们这样做的话我想知道它是什么,我自己!),但这里的东西虽然丑陋,但应该足够:

target_parent_div = b.divs(class: "card").find { |div| div.div(class: "Title",text: "AAAAAAAAA").exists? }target_element = target_parent_div.div(class: "Title",text: "AAAAAAAAA")

…然后根据需要使用target_element.

总结

以上是内存溢出为你收集整理的html – Watir:我如何找到一个元素,其中该元素的类及其父元素的类标识它?全部内容,希望文章能够帮你解决html – Watir:我如何找到一个元素,其中该元素的类及其父元素的类标识它?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存