セレンロケータとして、複数のCSSロケータを使用する方法?
-
21-09-2019 - |
質問
私は複数のリンクを含む表の行のリンクをヒットしようとしています。このパターンは、テーブル全体で使用されます。
この作品ます:
browser.wait_for(:element => "css=tr:nth-child(1) li:nth-child(2) > a")
このはしません。
browser.click "css=tr:nth-child(1) li:nth-child(2) > a"
これはあるかもしれない理由を任意のアイデア?私はセレンクライアントrubygemを使用しています。
解決
私は、これはセレンが現在CSSで要素を見つけるために使用cssQueryのバグによるものであると思います。問題とパッチの詳細は、次の問題のコメントで見つけることができます:ます。http:// jira.openqa.org/browse/SEL-698する
私はCSSのロケータのために別のライブラリを使用することになりますセレン2と信じて - - 助け希望おそらくjQueryのシズル(ます。http:// sizzlejs.com/ に)、この問題を解決するべきである。
デーブます。
他のヒント
このような痛みを伴うCSSの問題を回避するには、私は、ユーザーの拡張としてのjQueryをインストールしました。はるかに強力である:それは、CSSに似たロケータ文字列を(「)( 『完全』が含まjqueryの= td.dt-COL-ステータスdiv.dt-ライナー」)を定義することができます。私はあなたがしたい場合、私はJavaのRCのためにそれをやったどのように展開することができます。
これは私があなたのCSSのパスにパス全体を書き出してみてください、それが助けかどうかを確認しますセレン1のバグです。
EXあなたは、次のHTMLを使用している場合は、以下を使用することができ、CSSロケータ
<table> <tr> <td> <li> <a href="/yourlink" >
</li> </td> </tr> </table>
"css=tr:nth-child(1) > td > li:nth-child(2) > a"
それでも解決しない場合は、あなたは常にXPathを使用することができます。それはちょうどCSSロケータとしての表現としてのですが、少ないグリッチを持っている傾向があります。 あなたはXPathを使用する際に心に留めておくために持っている唯一の事は、彼らは一般的に遅く、CSSのロケータよりもあるということです。
"xpath=//tr/td//li[2]/a"