繁体   English   中英

如何使用Selenium 2 / Web驱动程序javascript API从选择下拉列表中选择一个选项?

[英]How can I choose an option from a select dropdown using Selenium 2/Web Driver javascript API?

我正在尝试使用Selenium2 / WebDriver从下拉列表中选择一个选项。 我有以下代码:

clickCss: function(selector, timeout, dontMoveAfter, finalKey) {
    var browser = this.browser;
    timeout = timeout || 10000;

    var element;

    return function(done) {
        async.waterfall([
            function(cb) {
              browser.waitForVisibleByCssSelector(selector, timeout, cb);
            },
            function(cb) {
              browser.elementByCssSelector(selector, cb);
            },
            function(el, cb) {
              element = el;
              element.click(cb);
            },
            function(cb) {
              if (dontMoveAfter) {
                  cb();
              } else {
                  browser.moveTo(element, 0, -50, cb);
              }
            },
            function(cb) {
              if (finalKey) {
                  browser.keys(wd.SPECIAL_KEYS[finalKey], cb);
              } else {
                  cb();
              }
            },
        ], done);
    };
},

changeAndVerifyStatus: function(){
    var w = this;
    return function(done){
        async.waterfall([
            w.clickCss(dropdownSelector,null,true),
            w.clickCss(optionSelector,null,true),
        ], done);
    };
},

如您所见,我只是单击下拉选择器,然后单击选项选择器。 结果是它成功单击了下拉列表,从而显示了一个选项列表,然后我可以看到要单击的选项被突出显示,但是它似乎并未真正单击它,因为javascript操作更改下拉列表时永远不会触发这种情况。 我已经尝试了多种方法,但是似乎没有什么想要更改下拉菜单的。 有什么想法吗?

尝试跳过单击选择框的步骤,直接单击该选项(即使人眼看不到该选项)。 我不太确定为什么这样做,但是这个问题已经被问了很多遍了,这似乎是简单的,独立于浏览器的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM