[英]How does Ruby webdriver get element with hyphen in <name, value> pair
我有 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 代碼選擇器,我想將它們全部收集在一個列表中,因此 class 名稱和標簽名稱不穩定。 我怎樣才能做到這一點
看起來像 Watir WebDriver。 嘗試使用 ZC7A628CBA22E28EB17B5F5C6AE2A266AZ(首選)或 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(:ZC7A628CBA22E28EB17B5F5C6AE2A266AZ => ".leavemessagebox[sku-code='m_showcase']") 我認為這仍然是特定的 CSS。
請讓我知道上面的 CSS 是否正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.