选择WebDriverJs中的下拉列表

vpn*_*vpn 13 javascript webdriver selenium-webdriver

我有一个下拉框,我想使用WebDriverJS选择一个值.我查看了下面的用户指南,但无法了解如何操作

https://code.google.com/p/selenium/wiki/WebDriverJs

我甚至尝试了一些为Java版本记录的内容,如下所示:

webdriver.Select(driver.findElement(webdriver.By.id("vote"))).selectByValue("5")
Run Code Online (Sandbox Code Playgroud)

它只是简单地说"选择"不存在.

我经历了源​​代码,仍然找不到任何我可以使用的东西.

nil*_*esh 11

您无需两次单击即可选择选项,只需直接单击该选项即可.就像是,

driver.findElement(wd.By.css('#month>option[title=\'November\']')).click();
Run Code Online (Sandbox Code Playgroud)


Dan*_*Dan 8

我共享了一个函数,通过它的文本在这里选择一个下拉项.

代码:

function selectOption(selector, item){
    var selectList, desiredOption;

    selectList = this.findElement(selector);
    selectList.click();

    selectList.findElements(protractor.By.tagName('option'))
        .then(function findMatchingOption(options){
            options.some(function(option){
                option.getText().then(function doesOptionMatch(text){
                    if (item === text){
                        desiredOption = option;
                        return true;
                    }
                });
            });
        })
        .then(function clickOption(){
            if (desiredOption){
                desiredOption.click();
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

用于:

driver.selectOption = selectOption.bind(driver);
driver.selectOption(webdriver.By.id('my-dropdown'), 'My Value');
Run Code Online (Sandbox Code Playgroud)


小智 5

driver.findElement({id: 'myDropDown'});// select dropdown element you wish to select
driver.sleep(1000);//not necessary
driver.findElement({id: 'myDropDown'}).sendKeys('name_of_option');//sending keys automatically fills dropdown with desired option
Run Code Online (Sandbox Code Playgroud)


小智 2

这应该通过以下方式实现

selectElem = driver.findElement(webdriver.By.id("vote"))
selectElem.click()
selectElem.findElement(webdriver.By.css("option[value='5']")).click()
Run Code Online (Sandbox Code Playgroud)