Webdriver.io比较器运算符

问题描述 投票:0回答:1

我正在尝试确保网页上显示的元素数大于零。我没有意识到断言我需要的元素正确填充的方法。以下是到目前为止的内容,但在最后一行出现了错误(即assert.equal(fieldsButtonList, "less than zero");

const assert = require("assert");
import header from "../pages/header.page";

describe("View Report", () => {
  it("Only data fields that were selected, will display in the result’s column", () => {
    browser.url(""); // Navigate to the FDA app
    browser.maximizeWindow(); // ensure that the window is maximized so that everything can be viewed
    header.searchAndVisualizeHeader.click(); // Select the "Search & Visualize" tab
    const searchTitle = $("h1").getText();
    assert(searchTitle, "Show");
  });

  it("There should be buttons", () => {
    assert.equal(browser.$$(".data-source").length, 4);
    const ndcButton = $(
      '//*[@id="data-sidebar-item-0"]/div/div/div/div[2]/button'
    );
    ndcButton.click();
  });

  it("There should be fields", () => {
    const fieldsButton = browser.$('//*[@id="data-sidebar-item-1-heading"]');
    fieldsButton.click();
    const fieldsButtonList = () => {
      if (browser.$$(".data-field").length > 0) {
        return "greater than zero";
      } else {
        return "less than zero";
      }
    };
    //assert.equal(fieldsButtonList, "less than zero");
  });
});

我遇到的错误如下(在最新的Chrome版本77.0.3865.120(官方内部版本)(64位)中运行):

[0-0] 2019-10-18T13:15:58.821Z INFO webdriver: COMMAND findElement("xpath", "//*[@id="data-sidebar-item-1-heading"]")
[0-0] 2019-10-18T13:15:58.821Z INFO webdriver: [POST] http://127.0.0.1:4444/session/d3813ab85ffd49ae3f3ba4c4b2df033f/element
[0-0] 2019-10-18T13:15:58.821Z INFO webdriver: DATA { using: 'xpath',
  value: '//*[@id="data-sidebar-item-1-heading"]' }
[0-0] 2019-10-18T13:15:58.842Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '885111a2-8a1e-47df-ba60-ce764f56e58e' }
[0-0] 2019-10-18T13:15:58.846Z INFO webdriver: COMMAND elementClick("885111a2-8a1e-47df-ba60-ce764f56e58e")
[0-0] 2019-10-18T13:15:58.846Z INFO webdriver: [POST] http://127.0.0.1:4444/session/d3813ab85ffd49ae3f3ba4c4b2df033f/element/885111a2-8a1e-47df-ba60-ce764f56e58e/click
[0-0] AssertionError [ERR_ASSERTION] in "View Report Fields should appear"
[Function: fieldsButtonList] == 'less than zero'
javascript reactjs webdriver-io
1个回答
1
投票

看到错误:[Function: fieldsButtonList] == 'less than zero',这是因为试图将函数引用与值less than zero进行比较。

问题是您不是在assert.equal(fieldsButtonList, "less than zero");行调用该函数。

您仍在创建对它的引用。

请将代码行替换为:assert.equal(fieldsButtonList(), "less than zero");

让我们知道这可行。

谢谢,Naveen

© www.soinside.com 2019 - 2024. All rights reserved.