如何处理承诺并获得对元素的访问权并使用getText()

时间:2019-01-30 16:53:17

标签: selenium-webdriver protractor mocha appium chai

我正在尝试使用示例here通过Appium + Protractor重构和运行混合应用测试 我的全球目标是为基于Appium + Protractor的混合/本地应用创建测试框架 我的本地目标是了解如何集成Appium + Protractor并选择最佳方法。 但是一开始我遇到了一个障碍,无法从元素中获取文本并与预期进行比较。我无法从WebView元素获取文本并与默认方法elementByXpath.getText();

进行比较

因此,我向file

添加了新测试
it("equal text", function () {
    return driver
        .elementById('buttonStartWebviewCD')
        .click()
        .sleep(5000)
        .contexts()
        .then(function (ctxs) {
            console.log(ctxs);
            return driver.context(ctxs[ctxs.length - 1]);
        })
        .source().then(function (source) {
            source.should.include('Prefered Car');
        })
        .elementById('name_input')
        .clear()
        .sendKeys('Andrey')
        .sendKeys(wd.SPECIAL_KEYS.Return)
        .sleep(2000)
        .elementByXPath("//h2").getText()
        .then(function(text) {
            console.log(text);
        });
});

我的here on stackoverflow发现了类似的情况 但这对我没有帮助。 错误:

  

driver.elementById(...)。click(...)。sleep(...)。contexts(...)。then(...)。source(...)。then(。 ..)。elementById(...)。clear(...)。sendKeys(...)。sendKeys(...)。sleep(...)。elementByXPath(...)。getText不是功能       在上下文。 (示例代码\ examples \ node \ android-       webview.js:152:28)       在_fulfilled(样本-       代码\示例\节点\节点模块\ wd \节点模块\ q \ q.js:834:54)       在C:\ protractor \ sample-code \ sample-       代码\示例\节点\节点模块\ WD \节点模块\ q \ q.js:863:30       在Promise.promise.promiseDispatch(示例-       代码\示例\节点\节点模块\ wd \节点模块\ q \ q.js:796:13)       在C:\ protractor \ sample-code \ sample-       代码\示例\节点\节点模块\ WD \节点模块\ q \ q.js:604:44       在runSingle(样本-       代码\示例\节点\节点模块\ wd \节点模块\ q \ q.js:137:13)       冲洗时(样品-       代码\示例\节点\节点模块\ wd \节点模块\ q \ q.js:125:13)       在process._tickCallback(internal / process / next_tick.js:61:11)

帮我解决这个问题

0 个答案:

没有答案