2016-04-18 11 views
0

サインアップページでセレクタのIDが繰り返し表示される場合、ドロップダウンから値を選択するにはどうすればよいですか?私は、ドロップダウンコントロールから値を取得するためにセレニウムWebドライバの書き込みテストスクリプトを作成しますが、常に要素が見つかりませんでした。より多くを書き込もうとする前にセレニティウェブドライバのドロップダウンから値を選択する際の問題

Select dropdown = new Select(driver.findElement(By.cssSelector("#cat_id.req"))); 
dropdown.selectByIndex(1); 

:あなたの問題へhttp://talentrack.in/register

+0

構造

+0

複数のselect要素に同じid属性が指定されていますか?もしそうなら、これは不正な形式のHTMLであり、開発者に修正するよう指示する必要があります。または、上記の選択要素内に「cat_id」が2回表示されていることを指摘していますか? id属性とname属性は異なる属性であり、同じ値を持つこともOKです。 –

+0

@Yogeshあなたのテストコードと、それが対象とするHTMLをあなたの質問に追加できますか? – sowa

答えて

0

簡単な解決策は、CSS、またはXPathのセレクタを使用している:

コードは、ターゲットページがあり、

Select dropdown = new Select(driver.findElement(By.id("cat_id"))); 
dropdown.selectByIndex(1); 

ですコード私はあなたがcssとxpathセレクタの使い方を学ぶことを強くお勧めします。始めるのに最適な場所はhereです。

FirePath Firefoxプラグインのインストールを検討する必要があります。これは、学習速度を向上させるのに最適なツールです。

編集:ここでは

は私の完全なコードです:そのようなコードの

import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.support.ui.Select; 
import org.openqa.selenium.support.ui.WebDriverWait; 

public class test{ 

private WebDriver driver; 
private WebDriverWait wait; 

    @Test 
    public void main() throws InterruptedException{  
    driver = new ChromeDriver(); 
    wait = new WebDriverWait(driver, 30); 
    driver.manage().window().maximize(); 
    driver.get("http://talentrack.in/register"); 
    wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#cat_id.req"))); 
    Select dropdown = new Select(driver.findElement(By.cssSelector("#cat_id.req"))); 
    dropdown.selectByIndex(5); 
    Thread.sleep(5000); 
    driver.close(); 
    }} 
+0

返答のためのThanxしかし、私は同じ例外が発生しています、org.openqa.selenium.NoSuchElementException:要素を見つけることができません:{"method": "css selector"、 "selector": "#cat_id.req"} コマンドの継続時間またはタイムアウト:16ミリ秒、すべてのセレクタで試しました –

+0

実際には、同じセレクタIDを持つ別の隠れたドロップダウンコントロールがページにあります。実行を中断しているかどうか。ここにURL http://talentrack.in/register –

+0

があります。CSSセレクタは私のためにうまく機能します - 私は完全なコードで私の答えを更新しました。 (私たちの実際のテストではthread.sleepを使わないでください) – Angusiasty

関連する問題