如何在WebdriverJS中等到元素的文本发生变化?

时间:2016-03-21 07:23:54

标签: javascript selenium testing selenium-webdriver webdriverjs

我在Alister Scott's博客中找到了如何等待元素更改为特定值。但我无法解决如何创建等待元素等待它的文本从特定值(在我的情况下从' - ')改为其他任何东西(在我的情况下它是一个计数器,所以我无法设置)等待的特定值。)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以在更改之前保存现有值,之后您可以为wait方法提供自己的期望函数。当值与旧值不同时,您的函数应返回true。

var oldValue = ...;
driver.wait(function(){
    var newValue = ...;
    return newValue != oldValue;
}, timeout);

答案 1 :(得分:1)

如果你是Promises的新手,可能会有点混乱......

driver.wait(function () {
    return driver.findElement(By.id('idYouWant')).getText().then(function (text) {
        return text === 'Done';
    });
}, timeout);

这段代码监视具有给定ID的动态变化元素的文本。

注意2返回并记住超时是以毫秒为单位。