【问题标题】:How debug and use grabAttributeFrom in codeceptjs?如何在codeceptjs中调试和使用grabAttributeFrom?
【发布时间】:2019-07-15 01:47:56
【问题描述】:

在我的例子中,页面中的所有标识符都是动态生成的。所以我不能使用 xpath。

我在文档中找到了方法:grabAttributeFrom

  • 当我在 --debug 模式下使用 cmd 时,如何查看里面的内容?
  • 我可以在搜索输入时使用 grabAttributeFrom 从页面中提取 xpath 吗?
  • 如何访问具有名称且 xpath 动态生成但我无法使用 xpath 的输入?

我试过这段代码:

I.fillField(locate('input').inside('.jq-panel-body-default').at(2),'John');

但它不能正常工作并产生异常:

 FAIL  Field "{"type":"xpath","output":null,"strict":true,"locator":{"xpath":".//input[ancestor::*[contains(concat(' ', normalize-space(./@class), ' '), ' jq-panel-body-default ')]][position()=2]"},"value":".//input[ancestor::*[contains(concat(' ', normalize-space(./@class), ' '), ' jq-panel-body-default ')]][position()=2]"}" was not found by text|CSS|XPath

【问题讨论】:

  • 朋友,你有很多问题。让我们稍微清理一下这个问题。
  • 即使稍微格式化一下,问题也需要更多尝试才能正确清理。

标签: node.js puppeteer functional-testing codeceptjs


【解决方案1】:
  1. 当我在 --debug 模式下使用 cmd 时,如何查看里面的内容?

里面……什么? 如果你想记录属性的值,抓住它并记录:

Scenario("test", async (I) => {
  ...
  const attributeValue = await I.grabAttributeFrom(<locator>, <attribute>);
  console.log(attributeValue);
  ...
});
  1. 我可以在搜索输入时使用 grabAttributeFrom 从页面中提取 xpath 吗?

grabAttributeFrom 用于获取属性值,而不是用于 xpath 查找。 但是如果你问,你能不能在定位器参数中使用 xpath,是的,你可以。

  1. 如何访问具有名称且 xpath 动态生成但我无法使用 xpath 的输入?

这还不够问你。分享一些 DOM 部分或一些要理解的东西。 如果您的意思是name 属性,则可以使用按名称过滤://input[@name="&lt;your element name&gt;"]

【讨论】:

    猜你喜欢
    • 2020-07-14
    • 2018-01-11
    • 2019-12-21
    • 2019-08-02
    • 2020-03-04
    • 2018-10-08
    • 2021-11-19
    • 2020-08-02
    • 2021-12-21
    相关资源
    最近更新 更多