1

CssSelector を使用して Web ページ上の要素を見つけようとしています。Firefox ドライバーを使用しています。

ロケーターの使用方法は次のとおりです(Selenium IDEがこれで要素を見つけることができることを確認しました

[FindsBy(How = How.CssSelector, Using = "label:contains('Version: 2.0.')")]
public IWebElement labelVersion;

しかし、これを C# コードで使用し、コンストラクターで PageFactory.InitElements で初期化する場合。

このエラーが発生しました... (エラー自体はかなり明確ですが、修正方法がわかりません)

入力に感謝します。

OPC.Tests.SmokeTest (TestFixtureSetUp): SetUp : OpenQA.Selenium.InvalidSelectorException : 指定されたセレクタ css=label:contains('Version: 2.0.') が無効であるか、WebElement になりません。次のエラーが発生しました: [例外...「無効または不正な文字列が指定されました」コード:「12」nsresult:「0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)」場所:「file:///...... /anonymous439571104.webdriver-profile/extensions/fxdriver@googlecode.com/components/driver_component.js 行: 5811"]

4

1 に答える 1

5

SeleniumはCSSクエリをブラウザに委任します。これは、CSSクエリがCSS標準に従う必要があることを意味します。

残念ながら、:containsはしばらく前に標準から削除されました。スペックから入手できるものでセレクターをやり直すか、XPATHを使用することをお勧めします。

:containsはSelenium RCで機能します。これは、RCがWebDriverではなくRCで機能する理由がわからない場合、jQueryのセレクター検索ライブラリであるSizzleを使用するためです。

于 2012-06-10T16:00:28.383 に答える