<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:我如何找到一个元素,其中该元素的类及其父元素的类标识它?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)