2012-03-28 12 views
3

一意の要素idの間に正規表現を使用するのに問題があります。CSS Selenium Selectorコードの間で正規表現を使用するにはどうすればよいですか?

は、ここで私が使って下のセレンのコマンドを使用(。*)正常に動作要素IDの間には、XPathを使用して、HTMLコード

<td align="left" style="vertical-align: top; "> 
<span class ="radiobutton" id="mainId:gen_id_12e3:radiospan1e">  
    <input type="radio" name="radio1" value="on" id="radio1" tabindex="0" checked>  
    <label for="id-2024">Yes</label> 

です。

selenium.click("xpath=//span[@id, 'mainId.*radiospan1e']"); 

しかし、それらは、IDの終わりのための$てきたように私は初めのために^ CSSで同じことを行うことができず、*どこでもページ内でしかし、私はいくつかとmainIdで始まるIDを望みます正規表現は一意のIDで終わります。

ご協力いただければ幸いです。

答えて

4

CSSは一般的な正規表現をサポートしていませんが、中間部分全体を自分のIDからワイルドカードしたいのであれば、実際にはCSSでかなり可能です(this answer)。

あなたのコードを考えると、あなたが使用することができます。

selenium.click("css=span[id^='mainId'][id$='radiospan1e']"); 
+0

おかげBoltclockを。 CSSで正規表現を使用する巧妙な方法:)。 – seleniumlover

+0

BoltClockの言うとおり、CSSは正規表現をまったくやっていません。 '$ ='はテール文字列のマッチです。同様に '* ='は部分部分文字列一致であり、 '^ ='は頭文字列一致です。 –

関連する問題