2012-03-13 13 views
0

ボタンがあり、htmlファイルには以下のように記述されています。CssSelectorを使用したテスト

<input class="add-to-basket" type="submit" value="Add to basket"/> 

私は上記のhtmlファイルに対して次のコードを作成しました。

var addToBasketLink = driver.FindElement(By.CssSelector("#Add to basket")); 
      addToBasketLink.Click(); 

[バスケットに追加]ボタンをクリックすると、ページの上にある[ビューバスケット]ボタンが表示されます。

Thankx事前

+0

これはJavaScriptですか? '.FindElement()'、 'By'と' .Click() 'はどこに定義されていますか? – jrummell

+0

誰かがあなたの質問を読んで答えさせたいなら、コードの書式は良いです。 – jrummell

+0

@jrummellこれはC#です。Interop.SHDocVwを使用して、おそらくWatiNなどを使用してテスト/スペックからDOMをクエリします。 – MilkyWayJoe

答えて

1

で#セレクタは、IDのために使用され、あなたの入力はID属性を持っていません。ピリオドであるクラスセレクタとクラス名が必要です。

By.CssSelector(".add-to-basket") 
+0

私は(By.CssSelector( "input [value = 'バスケットに追加]')));試してみましたが、正常に動作し、クラス名でコードを試しましたが、それはうまくいきません。これら2つの構文の違いについて教えてください。 – Leo

+0

これがSeleniumの場合、私はあなたの質問に答えることができません。 jQueryでは、CSSセレクタが指定どおりの規則に従うので、jQueryとSeleniumの間には多少の違いがあるかもしれません。 – mgnoonan

+0

'driver.FindElement(By.CssSelector(" input [class = 'add-to-basket'] "));'が動作するはずです – MilkyWayJoe

関連する問題