gpt4 book ai didi

ruby - 如何在 ruby​​/watir 中获取元素的类?

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:43 25 4
gpt4 key购买 nike

我有表格标题的代码:

<thead>
<tr class="ui-jqgrid-labels ui-sortable" role="rowheader" style="">
<th id="categories_formName" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr" style="width: 250px;">
<div id="jqgh_categories_formName" class="ui-jqgrid-sortable">Category Name</div>
</th>
<th id="categories_totalClicks" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr" style="width: 99px;">
<div id="jqgh_categories_totalClicks" class="ui-jqgrid-sortable">Clicks</div>
</th>
<th id="categories_avgCpc" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr" style="width: 99px;">
<div id="jqgh_categories_avgCpc" class="ui-jqgrid-sortable">Avg CPC($)</div>
</th>
<th id="categories_totalCost" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr" style="width: 99px;">
<div id="jqgh_categories_totalCost" class="ui-jqgrid-sortable">Total Cost($)</div>
</th>
<th id="categories_convertToSale" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr disabledHeader" style="width: 99px;">
<div id="jqgh_categories_convertToSale" class="ui-jqgrid-sortable">CTS(%)</div>
</th>
<th id="categories_totalOrders" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr disabledHeader" style="width: 99px;">
<div id="jqgh_categories_totalOrders" class="ui-jqgrid-sortable">Total Orders</div>
</th>
<th id="categories_totalSales" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr disabledHeader" style="width: 99px;">
<div id="jqgh_categories_totalSales" class="ui-jqgrid-sortable">Sales($)</div>
</th>
<th id="categories_costOfSale" role="columnheader" class="ui-state-default ui-th-column ui-th-ltr disabledHeader" style="width: 96px;">
<div id="jqgh_categories_costOfSale" class="ui-jqgrid-sortable">COS(%)</div>
</th>
</tr>

并且需要找出有多少标签具有类“disabledHeader”或至少获取特定的类(由 id 寻址)。

当我这样做时:

cl = b.th(:xpath, '//th[@id="categories_convertToSale"]')
cl.exist?
=> true
cl.inspect
=> "#<Watir::TableHeaderCell:0x..f9b976cc1015b866a located=true selector={:xpath=>\"//th[@id=\\\"categories_convertToSale\\\"]\", :tag_name=>\"th\"}>"
cl.class
=> Watir::TableHeaderCell

cl[@class]cl(:class) 返回错误。

b.element(:class, "disabledHeader").size 返回方法缺失错误。

如何解决这个类的所有th-s

最佳答案

Zeljko 解决了您关于计算与某种模式匹配的标签数量的问题。

关于获取某物的类别,这取决于您指的是哪种风格的“类别”。

Ruby 类

Ruby 是一种面向对象的语言,对象由语言中的“class”关键字定义。 Watir 利用了这一点,并拥有一个类似于 HTML 对象的内部对象模型。在 Ruby 中,.class 方法返回一个对象的类,这是硬连接到语言中的。 (事实上​​ ,您不会在 watir rDocs 的任何地方看到描述的 .class 方法)这就是您在尝试应该看起来像这样的代码时所做的

b.th(:id => "categories_convertToSale").class

=> Watir::TableHeaderCell

它告诉您 .th 方法返回的对象类是一个 watir 'TableHeaderCell'(有关详细信息,请参阅 TableHeaderCell Object 和/或 .th method 的 watir rdoc)

HTML 类属性

“类”的另一种风格是 HTML 类属性,它是 HTML 中几乎所有元素类型的标准属性。为此,您需要使用 watir 的 .attribute_value 方法以及您要检查的属性,以获取元素或 watir 中任何对象的属性值,例如与 HTML 元素类型相似的 TableHeaderCell。

b.th(:id => "categories_totalCost").attribute_value("class")

关于ruby - 如何在 ruby​​/watir 中获取元素的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043788/

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