ページオブジェクトgemコードからわかる限り、ページオブジェクトgemがwatir-webdriverの:cssロケーターをサポートしているとは思いません。少なくとも、watir_findersメソッドには含まれていません。element.rbおよびdiv.rbを参照してください。その理由は、:cssロケーターはelement
メソッドを使用する場合にのみ使用できるというwatir-webdriverの現在の制限によるものだと推測しています。watir-webdriverの問題124を参照してください。
解決策1-ブロックを使用する
ただし、ページオブジェクトのdivをブロックで定義することにより、これらの問題を回避できます。
htmlを想定すると:
<div class="active" style='display: block;'>text</div>
以下は私のために働いた:
div(:select){ browser.element(:css => 'div.active[style="display: block;"]') }
解決策2-Xpathを使用する
または、cssロケーターをxpathロケーターに変換することもできます。
div(:select2, :xpath => '//div[@class="active" and @style="display: block;"]')
このようにすると、クラスでより堅牢なロケーターを使用することについて説明しているこの別の質問を確認することをお勧めします。