首页 > 解决方案 > 无法滚动和双击元素

问题描述

这是我的步骤定义:

async function(string) {
//var wd = browser.driver;
 var elm = element.all(by.xpath("//label[.='Phone']/ancestor::span/following-sibling::*/input[@value='98098089']"));
 browser.executeScript(elm.getWebElement());

这是我面临的错误:然后用户滚动查看电话值

# E2E\Tests\StepDefinitions\PanelSteps.js:189 错误:函数使用多个异步接口:回调和promise使用回调接口:不返回promise使用promise接口:删除函数的最后一个参数

请帮我调试这个

标签: javascriptprotractor

解决方案


在 javascript 中处理异步行为有几种不同的方法:回调函数、使用 .then() 的承诺和使用 .then() 的承诺async/await

Js 将您的参数识别string为回调函数,但您已经将该函数声明为async并且这些是冲突的。我猜这是因为你的string参数没有在你的函数中使用。我会尝试删除它,因为您的函数正在等待触发回调。


更新: 添加示例

async function sampleFunction() {
    await browser.driver.sleep(5000); 
    var elm = element(by.id("WORKPHONE")); 
    await browser.executeScript("arguments[0].scrollIntoView()", elm.getWebElement()); 
    await elm.click()
}

推荐阅读