0

我有下面这样的 html,我想通过“sku-code”获取元素(里面有一个连字符)

<div class="leavemessagebox" style="position: relative;" sku-code="m_showcase">

当我使用

browser.div(:sku-code=>'m_showcase')

红宝石报错

ERROR:undefined local variable or method `code' for #<AUT::WebClient:0x2c59650>

同样,ruby 无法将“sku-code”识别为名称,任何人都可以给我任何关于如何通过“sku-code”获取元素的建议?谢谢。很抱歉没有清楚地解释自己。有很多元素都有 sku-code 选择器,我想将它们全部收集在一个列表中,因此类名和标签名不稳定。我怎样才能做到这一点

4

3 回答 3

1

看起来像 Watir WebDriver。尝试使用 css(首选)或 xpath。

browser.element(:css => "[sku-code='m_showcase']") # single one
browser.elements(:css => "[sku-code='m_showcase']") # a list of all matches

关于 CSS 属性选择器的文档在这里

所以基本上上面的选择器会找到所有属性sku-code等于的元素m_showcase

于 2013-07-12T10:22:40.300 回答
0

:sku-code不是有效的符号文字。然而,它有效的 Ruby 代码,它被解析为:

:sku - code

所以,你试图调用一个名为的方法code并从 symbol 中减去它的返回值:sku,这显然没有意义。

但是您当然可以引用符号文字:

:'sku-code'
于 2013-07-12T10:39:09.613 回答
0

browser.element(:css => ".leavemessagebox[sku-code='m_showcase']") 我认为这仍然是特定的CSS。

请让我知道上面的 CSS 是否正常工作。

于 2014-04-07T11:27:34.020 回答