2016-07-08 12 views
0

私はWebDriverWaitをしたので、私はリンクをクリックしてこのページに移動したので、ページの最初のラジオボタンを選択する必要があります。添付されている2つのラジオボタンとその下にあるコードを表示して待機を実行してください。セレンのドライバーラジオボタンを選択

HTML code

WebDriverWait wait = new WebDriverWait(driver, 30); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input[value='1']"))).click(); 

私は最初のラジオボタンをクリックすることはできませんしかし、それはこのエラーをスローします:https://www.seleniumeasy.com/selenium-tutorials/css-selectors-tutorial-for-selenium-with-examples 1として

time out after 30 seconds waiting for visibility of element located by.

+0

本当に解決策が必要な場合は、スクリーンショットの代わりにHTMLコードを共有する必要があります。 –

+0

ようこそ!あなたの研究を共有することは誰にでも役立ちます。何を試したのか、それがあなたのニーズを満たしていない理由を教えてください。これは、時間をかけて自分自身を助けようとしていることを示しています。明白な回答を繰り返さないようにしてくれています。そして、より具体的で適切な答えを得ることができます。 [ask]も参照してください。 – JeffC

+0

テキスト(HTML、コードなど)の画像を掲載するのではなく、テキスト自体を投稿してください。コピー/ペーストを使用してテキストを再利用するのを手伝ってくれる人には簡単になり、将来イメージが失われて問題が無駄になることを防ぐことができます。 HTMLやコードを投稿するときは、コードを適切にインデントして書式設定してください。書式設定に関するヘルプは、エディタの右側にある書式設定パネルと、下のリンクに含まれる詳細なヘルプにあります。 – JeffC

答えて

0

あなたは

としての.cssセレクタを使用して試すことができます
"input[value=1]" 

また、相対xpathを使用することもできます。このコードを試してみてください:

WebDriverWait wait = new WebDriverWait(driver, 30); 
WebElement ele = driver.findElement(By.xpath("//input[@value='1']")); 
wait.until(ExpectedConditions.visibilityOf(ele)); 
ele.click(); 

+0

CSSセレクタの '1'値の前後に引用符がありません。それはinput [value = '1'] "'でなければなりません。 – JeffC

+1

@ JeffC、私のポストのリンクから参照を取り出して自分で試した後、ロケータも引用符なしで動作することを認識しました。私にとっても同じように聞こえる。 – Anshu

0

ラジオボタンを直接クリックする代わりに、ラジオボタンの横にあるラベルをクリックしてみてください。ラジオボタンが表示されないことがあるためです。

//input[@value='1']/following-sibling::label 
0

これらは、実際のHTMLラジオボタンではありません、以下のXPath式を試してみてください、彼らはものだけに見えるように(やや)フォーマットされています。

driver.findElement(By.cssSelector("label[for='Form_Form_Role_1']")).click(); 

、またはSPANの子のいずれかをクリックします。

driver.findElement(By.cssSelector("span.radio-txt.supplier")).click(); 

いずれかまたは両方が機能するはずです。

関連する問題