使用微软的剧作家,我有这个测试代码,工作:
describe('When a user views a list of forms', () => {
let rows;
before(async() => {
await page.waitForSelector('tbody');
rows = await page.$$('tr');
});
it('should show a table of forms', async() => {
rows.length.should.equal(11);
});
我想把它分解成一个页面对象。我把它作为我的页面对象
class UserFormsPage {
constructor(page) {
this.page = page;
}
async rows() {
await this.page.waitForSelector('tbody');
return await this.page.$$('tr');
}
}
作为我的测试:
describe.only('List Forms Widget', function() {
let page;
...
before(async function() {
const context = await this.browser.newContext();
page = await context.newPage();
const userFormsPage = new UserFormsPage(page);
...
describe('When a user views a list of forms', () => {
let rows;
...
before(async() => {
rows = await userFormsPage.rows();
});
it('should show a table of forms', async() => {
rows.length.should.equal(11);
});
但我明白了
1) List Forms Widget
When a user views a list of forms
"before all" hook for "should show a table of forms":
TypeError: Cannot read property 'rows' of undefined
这是为什么呢?
注意:如果需要的话,在节点16中使用本地es模块
您的rows()
方法是异步的。每个异步方法都返回一个promise,因此在钩子中,rows=userFormsPage。行()
只会导致
promise{
如果你想要号码,你必须等待:
before(async () => {
rows = await userFormsPage.rows();
});
另一个问题似乎是您没有(至少在您的问题中没有)任何
UserFormsPage
对象的创建。构造函数需要页面
,但您似乎没有提供它。
我正在使用PlayWright,希望在DOM中找不到元素时执行操作。 我的代码看起来类似于: 这不管用。我怎样才能做到这一点?
用于选择对象的选项 在可以修改某个对象之前,需要将其与周围的对象区分开来。只需选择对象,即可加以区分。只要选择了对象或者对象的一部分,即可对其进行编辑。 Illustrator 提供以下选择方法和工具: 隔离模式可让您快速将一个图层、子图层、路径或一组对象与文档中的其他所有图稿隔离开来。在隔离模式下,文档中所有未隔离的对象都会变暗,并且不可对其进行选择或编辑。 图层面板可让您快速而准确地选择单个或
我试图模拟一个对象,该对象返回一个带有Mockito的Java可选对象: 当被调用,它返回。 我希望方法返回 返回的任何原因? 方法如下: 以下是Junit:
主要内容:示例JSP page 的实质是 java.lang.Object 对象,相当于 Java 中的 this 关键字。page 对象是指当前的 JSP 页面本身,在实际开发中并不常用。 page 对象的常用方法如下: page 对象的常用方法 方 法 说 明 class getClass() 返回当前页面所在类 int hashCode() 返回当前页面的 hash 代码 String toStrin
page对象表示由JSP页面生成的Servlet类的对象实例本身。page对象实际上是Object类型的对象。但可以将page对象转换成相应的Servlet类型的对象。在下面的代码中输出了page对象的类型信息,并通过反射技术输出了由JSP生成的Servlet类中的所有public方法名。 <!-- page.jsp --> <%@ page language="java" pageEncod
我在反应中有一个选择,只是想console.log选择的值。我的问题是console.log返回最后选择的值。例如,如果我选择4,然后是3,然后是5,代码将呈现1(默认值),然后是4,然后是3。 这是我的JSX代码: 这是处理输入更改的函数: