4

ドロップダウンとして表示されたメニュー項目のリストで項目を選択するにはどうすればよいですか? sendKeys で「Brown Mustard」のようなテキストを入力しようとしましたが、送信ボタンを押すとクリアされます。フィールドに入力できるはずですが、WebDriver sendKeys が機能しなかったので、メニュー項目のリストから選択する方法について提案があれば、どうもありがとうございました!

テキスト フィールドの HTML スニペットと、「B」と入力したときに表示されるメニュー項目を次に示します。

     <input id="combobox0-text" class="ui-autocomplete-input ui-widget 
     ui-widget-content tableRightFormTextField" autocomplete="off" 
     role="textbox" aria-autocomplete="list" aria-haspopup="true"> 

    <li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" 
    tabindex="-1">Bro<strong>w</strong>n Mustard</a></li>
    <li class="ui-menu-item" role="menuitem"><a class="ui-corner-all"    
    tabindex="-1">Bro<strong>w</strong>ntop</a></li>
4

3 に答える 3

2

あなたは待つことを試すことができます、

new WebDriverWait(driver, 60).until(ExpectedConditions.visibilityOfElementLocated(By.id("combobox0-text"))).clear();
driver.findElement(By.id("combobox0-text")).sendKeys("Brown Mustard");
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("li.ui-menu-item"))).click();

上記のコードはinput fieldandをクリアtype in the required itemし、メニュー項目がドロップダウンに表示されるのを待ちます...,3 番目のステートメントはmenu item..をクリックします

于 2013-10-22T04:46:32.530 に答える
1

これがどのように機能するかです:

driver.FindElement(By.Id("combobox0-text")).Clear();
driver.FindElement(By.Id("combobox0-text")).SendKeys("bro");
driver.FindElement(By.CssSelector("li.ui-menu-item")).Click();

参考:キーを送信した後、最初/トップのメニュー項目を選択する必要があります。したがって、特定の項目を選択したい場合は、さらにキーを入力してください。

于 2012-08-01T09:35:08.213 に答える
1

B を入力すると、メニュー項目の選択オブジェクトを作成し、表示されるテキストに基づいて項目を選択できます。

import org.openqa.selenium.support.ui.Select;


//your code before entering B
Select menu = new Select(driver.findElement(By.id("combobox0-text")));
menu.selectByVisibleText("Brown Mustard");
于 2012-08-05T01:02:24.307 に答える