0

以下のような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>

ルビーが「sku-code」を名前として認識できないのと同じですが、「sku-code」で要素を取得する方法について誰か提案してください。ありがとう。自分自身を明確に説明して申し訳ありません。sku-codeセレクターを持つ要素が多く、一覧にまとめたいので、クラス名とタグ名が安定しません。どうやってやるの

4

3 に答える 3

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 の属性セレクターに関するドキュメントはこちらです。

したがって、基本的に上記のセレクターは、属性sku-codeが に等しいすべての要素を検索しますm_showcase

于 2013-07-12T10:22:40.300 に答える
0

:sku-codeは有効なシンボル リテラルではありません。ただし、これ有効な Ruby コードであり、次のように解析されます。

:sku - code

したがって、という名前のメソッドを呼び出して、codeその戻り値をシンボルから減算しようとしていますが:sku、これは明らかに意味がありません。

ただし、もちろん、シンボル リテラルを引用できます。

:'sku-code'
于 2013-07-12T10:39:09.613 に答える
0

browser.element(:css => ".leavemessagebox[sku-code='m_showcase']") これはまだ特定の CSS になると思います。

上記のCSSが機能しているかどうか教えてください。

于 2014-04-07T11:27:34.020 に答える