2016-05-10 10 views
0

現在、私はセレンを初めて使っています。ドロップダウンから値を選択したいと思います。 ul class = "ns-dropdown"で、オプションはオーストラリアドルページを選択してロードしようとしています。ここでJavaを使用してSelenium WebDriverでクラス名でドロップダウン値を選択する方法

は、HTMLタグである:

<ul class="ns-dropdown"> 
<li class="ns-option><a class="c36 noUnderline">USD</a></li> 
<li class="ns-option><a class="c36 noUnderline">AUD</a></li> 
<li class="ns-option><a class="c36 noUnderline">NZD</a></li> 
</ul> 

ここで私は

WebElement dropDownListBox = driver.findElement(By.className("ul.ns-dropdown")); 
Select clickThis = new Select(dropDownListBox); 
clickThis.selectByValue("Australian Dollar"); 

を試してみました。しかし、これは働いていないコードがあります。

ドロップダウン値を設定する方法を教えてください。

ありがとうございました!

+0

WebElementドロップダウンリストボックス=ドライバを追加することができますタイミングの問題している場合は、あなたのケースであなたはオプションが表示されるようにドロップダウンを開く必要があり、その後、オプションをクリックします

driver.findElement(By.className("ns-dropdown")).click(); // open the dropdown driver.findElement(By.linkText("AUD")).click(); // choose Australian Dollar 

を必要としています。 findElement(By.className( "ul.ns-dropdown")); clickThis = newを選択(dropDownListBox); clickThis.selectByValue( "AUD");しかし、これは私のために働いていない。 –

+0

@RafaelAlmeida Xpathを二重引用符で囲む方法は? –

+0

@BalamuruganV [documentation](http://selenium-python.readthedocs.io/locating-elements.html)をチェックしてください。 –

答えて

0

Selectクラスは<select>タグではなく<ul>タグで使用されるように使用されることを意味しているので、私はあなたがclickThisをインスタンス化しようとすると、UnexpectedTagNameExceptionを受けてきたことを想像しますか?あなたがBy.linkText()を使用することができ、子供のよう

// Very similar to what you first tried! 
WebElement dropDownListBox = driver.findElement(By.className("ns-dropdown"));` 

あなたは自分の個々の<a>タグを含めると連携しようとしている<li>タグ:シナリオで

、最初のようなものを使用して親<ul>タグを識別する必要があります

WebElement currency = dropDownListBox.findElement(By.linkText("Australian Dollar")); 
currency.click(); 
0

Selectクラスのみに取り組んでいる:そのようにあなたが必要と通貨オプションを見つけてクリックするロケータ10個のタグ。あなたが明示的に待機

WebDriverWait wait = new WebDriverWait(driver, 10); 

driver.findElement(By.className("ns-dropdown")).click(); // open the dropdown 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.ilinkText("AUD"))).click(); // wait for the option to be visible before clicking on it. 
関連する問題