节点Selenium WebdriverJS – 如何检查元素是否真正可点击?

如何检查一个元素是否真的在seleniumwebdriverJS点击?

我知道我可以检查元素是否显示,是否启用元素。 但是,如果该元素被其他元素隐藏,例如通过模式popup,则不能被点击。 在这种情况下,我希望webdriver等待,直到元素是真正可点击的。

这个怎么做? 谢谢您的帮助

我面临这个问题,最终find了一个解决scheme。 即使是我使用wd而不是selenium-webdriver ,我认为我的解决scheme可能对于使用Node.js工作的人有用。

基本上,我使用通用waitFor和一个waitFor一直试图点击,直到成功或超时。 这里是代码

用法

 browser .elementById('some-button') .clickWhenClickable() 

methods.js

 var wd = require('wd'); var asserters = require('./asserters'); wd.addElementPromiseMethod('clickWhenClickable', function clickWhenClickable (timeout, pollFreq) { return this.browser.waitFor(asserters.elementHasBeenClicked(this), timeout, pollFreq); }); 

asserters.js

 var wd = require('wd'); var Asserter = wd.Asserter; exports.elementHasBeenClicked = function elementHasBeenClicked (el) { return new Asserter(function hasBeenClicked (browser, cb) { el.click(function(err) { cb(null, !err, null); }); }); };