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是否正常工作。