【发布时间】:2019-01-25 16:08:59
【问题描述】:
我正在尝试使用客户端函数来访问页面上子元素中的值,不一定是本示例中的值,而是使用提供的 testcafe 选择器很难找到的值。
在定义页面对象模型时,我希望能够访问多个 iFrame 模式上的 Next、Back 和 Save 按钮,根据模式视图,它们可以在 DOM 上具有不同的位置,并且没有 id(产品是旧的一)。
但是它们都遵循类似的模式,它们都将是跨度的子元素,并包含带有其名称的显示文本和标题,通过 chrome Dev Tools Console 我可以使用类似于以下内容的内容访问它们
Array.from(document.querySelectorAll('span')).find(el => el.textContent === "Next")
但是,当我尝试在 testcafe 中将其作为客户端函数调用时出现错误,以下是基于我的方法但针对 testcafe 站点的示例,它给出了相同的错误。
import { Selector } from 'testcafe';
import { ClientFunction } from 'testcafe';
fixture `Client Function`
.page `https://devexpress.github.io/testcafe/documentation/test-api/selecting-page-elements/selectors/functional-style-selectors.html`;
const query = ClientFunction(() => Array.from(document.querySelectorAll('a')).find(el => el.textContent === "Filter DOM Nodes"));
test('Test query', async t => {
const queryResult = await query();
await t
.click(Selector(queryResult))
.wait(1500);
});
这给出的错误对我来说相当神秘:
1) An error occurred in ClientFunction code:
ReferenceError: _from2 is not defined
Browser: Chrome 71.0.3578 / Mac OS X 10.13.6
6 | .page
`https://devexpress.github.io/testcafe/documentation/test-api/selecting-page-elements/selectors/functional-style-selectors.html`;
7 |
8 |const query = ClientFunction(() =>
Array.from(document.querySelectorAll('a')).find(el => el.textContent
=== "Filter DOM Nodes"));
9 |
10 |test('Login and register user', async t => {
> 11 | const queryResult = await query();
12 | await t
13 | .click(Selector(queryResult))
14 | .wait(1500);
15 |});
16 |
at query (/Users/david/Documents/testcafe/demo/query.js:11:33)
at test (/Users/david/Documents/testcafe/demo/query.js:10:1)
at markeredfn
(/usr/local/lib/node_modules/testcafe/src/api/wrap-test-function.js:17:28)
at <anonymous>
(/usr/local/lib/node_modules/testcafe/src/api/wrap-test-function.js:7:5)
at fn
(/usr/local/lib/node_modules/testcafe/src/test-run/index.js:239:19)
at TestRun._executeTestFn
(/usr/local/lib/node_modules/testcafe/src/test-run/index.js:235:38)
at _executeTestFn
(/usr/local/lib/node_modules/testcafe/src/test-run/index.js:284:24)
1/1 failed (5s)
有谁知道这是一个合法的错误还是一个实施错误?谢谢 - 任何指针也非常欢迎!
【问题讨论】:
-
你有没有弄清楚错误来自哪里?我遇到了类似的问题,但没有看到关于 ReferenceError 所指内容的可能解释。
-
错误是testcafe中
ClientFunction的限制。见testcafe.io/documentation/402832/guides/basic-guides/…
标签: javascript testing automated-tests e2e-testing testcafe