首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: LoginPage.userNameTextBox.setValue不是一个函数

TypeError: LoginPage.userNameTextBox.setValue不是一个函数
EN

Stack Overflow用户
提问于 2021-07-22 05:10:10
回答 1查看 100关注 0票数 0

在使用黄瓜为webdriverio运行程序时获取以下错误

TypeError: LoginPage.userNameTextBox.setValue不是World的一个函数。(C:\Users\Desktop\Webdriver_cucumber\features\step-definitions\steps.js:21:31) at World.executeAsync (C:\Users\Desktop\Webdriver_cucumber\node_modules@wdio\utils\build\shim.js:136:25) at World.testFrameworkFnWrapper (C:\Users\Desktop\Webdriver_cucumber\node_modules@wdio\utils\build\test-framework\testFnWrapper.js:45:32)

login.feature文件

代码语言:javascript
复制
Feature: To test the login functionality in "The Internet Herokuapp"

Background:
      Given the user is on login page


Scenario: The one where user logs in using valid credentials

  When the user enters username as "tomsmith" and password as "SuperSecretPassword!"

  And clicks on login button

  Then the user must navigate to secure area page displaying a message "You logged into a secure area!"


Scenario Outline: The one where user logs in using invalid credentials

When the user enters username as "<username>" and password as "<password>"

And clicks on login button

Then the user must remain on login page displaying a message "<errorMessage>"

 Examples:

| username  | password              | errorMessage       |

| james     | SuperSecretPassword!  | Invalid username!  |

| tomsmith  | SuperPassword!        | Invalid password!  |

steps.js

代码语言:javascript
复制
When('the user enters username as {string} and password as {string}', function (username, 
password) {


LoginPage.userNameTextBox.setValue(username);

LoginPage.passwordTextBox.setValue(password);

});

shim.js

代码语言:javascript
复制
async function executeAsync(fn, retries, args = []) {

this.wdioRetries = retries.attempts;
try {
    return await fn.apply(this, args);
}
catch (e) {
    if (retries.limit > retries.attempts) {
        retries.attempts++;
        return await executeAsync.call(this, fn, retries, args);
    }
    throw e;
}
}

有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2021-07-29 16:47:06

不确定你是否已经找到了解决办法,因为我看到这个问题已经有7天了。你有没有试着把wait放在LoginPage.userNameTextBox.setValue(username);之前。如果不查看页面定义或元素定义,就很难回答任何问题。但是在大多数情况下,发生这种情况是因为页面仍然在加载,但是代码已经被执行,并导致对元素调用一个函数,而该函数还不可用。也许尝试放置一个wait只是为了调试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68479474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档