1

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);
    };
},

ご覧のとおり、ドロップダウン セレクターをクリックしてから、オプション セレクターをクリックしています。その結果、ドロップダウンが正常にクリックされてオプションのリストが表示され、クリックしたいオプションが強調表示されていることがわかりますが、実際にはクリックしなかったようです。ドロップダウンが変更されたときに発生することはありません。複数のアプローチを試しましたが、ドロップダウンを変更したいものはないようです。何かご意見は?

4

1 に答える 1

1

選択ボックスをクリックするステップを飛ばして、直接オプションをクリックしてみてください (人間の目には見えませんが)。これが機能する理由はよくわかりませんが、この質問は何度も出されており、ブラウザに依存しない簡単な解決策のようです。

于 2013-10-31T19:52:33.890 に答える