ruby webdriver如何在对中获取带连字符的元素

我有像下面的HTML,我想通过“sku-code”获取元素(其中有一个连字符)

我用的时候

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

ruby报告错误

 ERROR:undefined local variable or method `code' for # 

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

看起来像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所有元素。

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

 :sku - code 

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

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

 :'sku-code' 

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

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