2

重複の可能性:
SeleniumWebDriver-非表示の選択からオプションを取得

1ページの選択で大きな問題が発生しています。

コード:

<select name="fw3k_ad_input_et_type_group" class="" 
            id="_id_fw3k_ad_input_et_type_group" 
            onchange=" eurotax.change_type_group( this.value ); " 
            style="display: none; ">

        <option value="0"> --- odaberite tip --- </option>
        <option value="-1" class="special">> nema mog tipa  </option>
        <option value="16390">CD</option>
        <option value="17605">S</option>
        <option value="17636">SE</option>

</select>
<a href="" class="fs_item" id="fs_item_0" style=""> --- odaberite tip --- </a> 


表示: http:

//imageshack.us/f/7/screenshotfrom201209111.png/

選択は非表示になり、href = ""が表示され、選択したオプションに応じてテキストが変更されます。

私は本当にそれを管理する方法を知りません。JavascriptExecutorですべてのオプションを取得でき、a.click()を使用してドロップダウンボックスを表示できますが、一部のオプションをクリックする方法がわかりません。

Selectクラスと.getOptions()メソッドを使用しようとしましたが、非表示のselectでは機能せず、href=""テキストを変更できません。

:(

いくつかの例を教えてください。

4

3 に答える 3

3

質問と少し混乱していますが、試しましたか

WebElement element = driver.findElement(By.id("fw3k_ad_input_et_type_group"));
Select select = new Select(element);

次に、いずれかを使用します

select.selectByValue(value);
select.selectByVisibleText(text);
select.selectByIndex(index);
于 2012-09-11T14:07:41.007 に答える
3

第 1 の方法: 同じ js を使用して任意の要素をクリックしても問題ありません。任意のオプションを取得する方法を知っているように、残っている最後のアクションはクリックを実行することです。これはあなたのために働くはずです:

WebElement hiddenWebElement =driver.findElement(By(..selector of the element....));
        ((JavascriptExecutor)driver).executeScript("arguments[0].click()",hiddenWebElement);

2番目の方法:

String cssSelector= ...//i gave them in your previous question
JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x = $(\'"+cssSelector+"\');");
        stringBuilder.append("x.click();");
        js.executeScript(stringBuilder.toString());

3 番目の方法: アクション ビルダー、高度なユーザー アクション API を使用します。あなたはそれについてここで読むことができます そしてコードはそのようにsmthになります:

WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).click();
sbEle = driver.findElement(By.Id("sbEle")).click();

Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.moveToElement(mnEle).Perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).click();

ここに追加情報を追加することもでき ますこれが何らかの形で役立つことを願っています)

于 2012-09-11T16:17:49.433 に答える
1
driver.findElement(By.name("_id_fw3k_ad_input_et_type_group")).sendKeys("16390");

非常によく似た何かのために私のために働いた。

于 2012-09-11T13:59:05.443 に答える