就我而言,页面中的所有标识符都是动态生成的。所以我不能使用xpath。
我在文档grabAttributeFrom
中找到了方法。
我尝试了以下代码:
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
答案 0 :(得分:0)
里面..什么? 如果要记录属性值,请抓住它并记录:
Scenario("test", async (I) => {
...
const attributeValue = await I.grabAttributeFrom(<locator>, <attribute>);
console.log(attributeValue);
...
});
grabAttributeFrom
用于获取属性值,而不用于xpath查找。
但是,如果您询问,是否可以在locator参数中使用xpath,可以。
这还不够问你。共享一些DOM部分或一些需要了解的内容。
如果您指的是name
属性,则可以按名称使用过滤://input[@name="<your element name>"]