Selenium WebDriver to select combo-box item?

后端 未结 4 1878
情深已故
情深已故 2020-12-31 05:41

We are using Selenium WebDriver and JBehave to run \"integration\" tests on our web-app. I have a method that will enter a value into a form input.

@When(\         


        
相关标签:
4条回答
  • 2020-12-31 06:05

    This is how to do it:

    @When("I select $elementId value $value")
    public void selectComboValue(final String elementId, final String value) {
        final Select selectBox = new Select(web.findElement(By.id(elementId)));
        selectBox.selectByValue(value);
    }
    
    0 讨论(0)
  • 2020-12-31 06:12

    By using ext js combobox typeAhead to make the values visible in UI.

    var theCombo = new Ext.form.ComboBox({  
    ...
    id: combo_id,
    typeAhead: true,
    ...
    });
    
    driver.findElement(By.id("combo_id-inputEl")).clear();
    driver.findElement(By.id("combo_id-inputEl")).sendKeys("The Value you need");
    driver.findElement(By.id("combo_id-inputEl")).sendKeys(Keys.ARROW_DOWN);
    driver.findElement(By.id("combo_id-inputEl")).sendKeys(Keys.ENTER);
    

    If that doesn´t work this is also worth a try

    driver.findElement(By.id("combo_id-inputEl")).sendKeys("The Value you need");
    driver.findElement(By.className("x-boundlist-item")).click();
    
    0 讨论(0)
  • 2020-12-31 06:16

    The Support package in Selenium contains all you need:

    using OpenQA.Selenium.Support.UI;
    
    SelectElement select = new SelectElement(driver.findElement( By.id( elementId ) ));
    select.SelectByText("Option3");
    select.Submit();
    

    You can import it through NuGet as a separate package: http://nuget.org/packages/Selenium.Support

    0 讨论(0)
  • 2020-12-31 06:18

    The Selenium paradigm is that you are supposed to simulate what a user would do in real life. So that would be either a click or a keys for navigation.

    Actions builder = new Actions( driver );
    Action  action  = builder.click( driver.findElement( By.id( elementId ) ) ).build();
    action.perform();
    

    As long as you get a working selector to feed into findElement you should have no problem with it. I have found CSS selectors to be a better bet for things involving multiple elements. Do you have a sample page?

    0 讨论(0)
提交回复
热议问题