簡體   English   中英

Ruby webdriver如何獲取帶有連字符的元素<name, value>一對</name,>

[英]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。 嘗試使用 ZC7A62​​8CBA22E28EB17B5F5C6AE2A266AZ(首選)或 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(:ZC7A62​​8CBA22E28EB17B5F5C6AE2A266AZ => ".leavemessagebox[sku-code='m_showcase']") 我認為這仍然是特定的 CSS。

請讓我知道上面的 CSS 是否正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM