0

我在一页上有这个源:

<span class="price-length price-length--4">666</span>

我在另一个页面上有这个源

<span class="price-length price-length--7">777</span>

我想获取 666 的值,将其存储在某处,然后与 777 进行比较。如何使用 codeceptjs 做到这一点?

我试过I.grabValueFrom('some_xpath_to_value')了,但我不明白如何重用它。如何查看I.grabValueFrom函数在 codeceptjs 中返回的值?

4

3 回答 3

2

您可以使用生成器函数通过 'yield' 从函数中返回值,如下所示:

Scenario('Yield', function* (I) {
  let value = yield I.grabValueFrom(some_xpath_to_value);


  let assert = require('assert');
  assert.equal(value, '777');
});
于 2017-11-01T04:22:20.967 回答
1

Codeceptjs 中的所有函数都返回 Promises,而不是值。所以要从I.grab...函数中获取价值,你应该得到 Promise 结果。

您可以将 Garret 解决方案与yield. 或相同,但带有async/ await(Codecept Node.js 8.9.1 需要有async/await支持)

const assert = require('assert');

Scenario('async', async function(I) {
  let value = await I.grabValueFrom(some_xpath_to_value);

  assert.equal(value, '777');
});
于 2018-11-01T14:46:52.670 回答
0

使用控制台查看抓取方法:

import assert from "assert";

Scenario("Example", async ({ I }) => {
  const firstValue = await I.grabValueFrom("some_xpath_to_value");
  console.log(firstValue);
  const secondValue = await I.grabValueFrom("some_xpath_to_value");
  console.log(secondValue);

  assert.ok(firstValue == secondValue, `Values don't match`);
});
于 2022-01-28T15:01:03.017 回答