gpt4 book ai didi

watir - 如何从 watir 中的多个相同属性中查找文本?

转载 作者:行者123 更新时间:2023-12-02 06:37:11 24 4
gpt4 key购买 nike

我想从以下值中找到并单击 Line Lo 值。以下 li 有超过 100 条记录具有相同的类名。如何找到 Line Lo 并单击该值。

<div id="loc">
<ul id="tab">
<li class="criteria">
<div class="bud">
<div class="inner">
<div class="attr">Code Lo</div>
</div>
</div>
</li>
<li class="criteria">
<div class="bud">
<div class="inner">
<div class="attr">Line Lo</div>
</div>
</div>
</li>
<li class="criteria">
<div class="bud">
<div class="inner">
<div class="attr">Add Lo</div>
</div>
</div>
</li>
</ul>
</div>

当我尝试时,browser.ul(id: "tab").li(class: "criteria").div(text: "Line Lo")

得到失败错误。

Unable to locate element, using(:class => "Criteria", :tag_name=>"li"

我尝试了不同的不同属性来查找文本 Line Lo 但我失败了。

还有,这个元素好像是第 45 个,所以是否可以在点击之前向下滚动并闪烁这个值?

提前致谢

最佳答案

原来你试过的东西

browser.ul(id: "tab").li(class: "criteria").div(text: "Line Lo")

失败是因为当有多个元素可以匹配您指定的条件时,watir 将使用它找到的第一个。那么要求 watir 做的事情将等同于以下英语

找到 ID 为“tab”的第一个无序列表,然后在该列表中找到第一个带有“条件”类的列表项,然后在该列表项中,找到一个带有文本“Line Lo”的 div。

由于该列表中的第一个 LI 不包含带有该文本的 div,因此它失败了。

点击最里面的 div(根据评论,这就是你想要做的)

browser.div(:class => "attr", :text => "Line Lo").click

aka 给我找一个带有类“attr”和文本“Line Lo”的 div,然后让 div 自己点击


这些其他选项是在不清楚 OP 究竟在哪个 div 之后出现的,但我将保留它们,因为它们可能对其他遇到类似问题的人提供信息

单击包含上面的 div(父级)。

browser.div(:class => "inner", :text => "Line Lo").click

如果那个父 div 没有唯一性(没有类等),你仍然可以像这样访问它

browser.div(:class => "attr", :text => "Line Lo").parent.click

单击包含所有内容的 li 标签

browser.li(:class => "criteria", :text => "Line Lo").click

对于其中的任何一个,如果您需要限制只查看该特定列表的内部,则像这样指定

browser.ul(:id => "tab").li(:class => "criteria", :text => "Line Lo").click

关于watir - 如何从 watir 中的多个相同属性中查找文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15793353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com