我有html如下,我想通过“sku-code”获取元素(其中有一个连字符)
<div class="leavemessagebox" style="position: relative;" sku-code="m_showcase">
当我使用
时browser.div(:sku-code=>'m_showcase')
ruby报告错误
ERROR:undefined local variable or method `code' for #<AUT::WebClient:0x2c59650>
同样ruby无法识别“sku-code”作为名称,任何人都可以给我任何关于如何通过“sku-code”获取元素的建议?谢谢。 很抱歉没有清楚地解释自己。有很多元素都有sku-code选择器,我想在列表中收集它们,所以类名和标签名称不稳定。我怎么能这样做
答案 0 :(得分: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的属性选择器上的文档是here。
所以基本上上面的选择器会发现属性sku-code
的所有元素都等于m_showcase
。
答案 1 :(得分:0)
:sku-code
不是有效的符号文字。它是但是有效的Ruby代码,它被解析为:
:sku - code
所以,你试图调用一个名为code
的方法,并从符号:sku
中减去它的返回值,这显然没有意义。
但是你可以引用符号文字,当然:
:'sku-code'
答案 2 :(得分:0)
browser.element(:css =&gt;“。leavemessagebox [sku-code ='m_showcase']”)我认为这仍然是特定的CSS。
请告诉我上面的CSS是否有效。