我正在尝试使用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操作从未触发下拉列表时发生的情况。我尝试了多种方法但似乎没有想要更改下拉列表。有什么想法吗?
答案 0 :(得分:1)
尝试跳过单击选择框的步骤,直接点击该选项(即使它看不到人眼可见)。我不太清楚为什么会这样,但这个问题已被多次询问过,这似乎是一个简单的,独立于浏览器的解决方案。