Typescript 验证DOM中不存在的元素时,量角器执行挂起

Typescript 验证DOM中不存在的元素时,量角器执行挂起,typescript,protractor,Typescript,Protractor,非常奇怪的是,当我们验证dom中不存在测试用例时,量角器执行会无限期地挂起。 下面是我们尝试过的代码,但它挂起的原因不清楚。 它一直在等待这个.columnNamesInTableSingle元素,即使它不在DOM中,我们只需要验证它 var el = this.columnNamesInTableSingle; browser.wait(protractor.ExpectedConditions.not(protractor.ExpectedConditions.presen

非常奇怪的是,当我们验证dom中不存在测试用例时,量角器执行会无限期地挂起。 下面是我们尝试过的代码,但它挂起的原因不清楚。 它一直在等待这个.columnNamesInTableSingle元素,即使它不在DOM中,我们只需要验证它

 var el = this.columnNamesInTableSingle;
        browser.wait(protractor.ExpectedConditions.not(protractor.ExpectedConditions.presenceOf(el)),5000);



expect(this.columnNamesInTableSingle.isPresent()).toBe(false);

 this.columnNamesInTableSingle.then(a=>{
    //         console.log(a.length+"==============================")
    //     },abc=>{
    //         console.log(abc)
    //     })

我知道这篇文章很老,但我已经实现了一个函数,可以用来测试DOM中是否存在元素,而不需要任何
wait

3个参数:

  • 字段:有目标的
    ElementFinder | ElementFinder[]
  • fieldName:
    字符串
    目标名称(仅用于记录)
  • 存在:
    布尔值
    切换控件(测试是否存在)
职能:

导出异步函数检查字段(字段:any,字段名:string,present?:any){
让文本:字符串;
如果(存在===错误){
如果(字段长度>0){
field.forEach(异步el=>{
试一试{
text=wait el.getText();
expect('不应存在('+fieldName+'))。toEqual('但它存在');
}捕获(e){
期望(el.isPresent()).toBe(present);
}
});
}否则{
试一试{
text=等待字段。getText();
expect('不应存在('+fieldName+'))。toEqual('但它存在');
}捕获(e){
expect(field.isPresent()).toBe(present);
}
}
}否则{
如果(字段长度>0){
field.forEach(异步el=>{
试一试{
text=wait el.getText();
expect(el.isPresent()).toBe(true);
}捕获(e){
expect('存在('+fieldName+'))。toEqual('但我找不到它');
投掷e;
}
});
}否则{
试一试{
text=等待字段。getText();
expect(field.isPresent()).toBe(true);
}捕获(e){
expect('存在('+fieldName+'))。toEqual('但我找不到它');
投掷e;
}
}
}

}
我知道这篇文章很老了,但我实现了一个函数,可以在没有任何
等待的情况下测试DOM中是否存在元素(或不存在元素):

3个参数:

  • 字段:有目标的
    ElementFinder | ElementFinder[]
  • fieldName:
    字符串
    目标名称(仅用于记录)
  • 存在:
    布尔值
    切换控件(测试是否存在)
职能:

导出异步函数检查字段(字段:any,字段名:string,present?:any){
让文本:字符串;
如果(存在===错误){
如果(字段长度>0){
field.forEach(异步el=>{
试一试{
text=wait el.getText();
expect('不应存在('+fieldName+'))。toEqual('但它存在');
}捕获(e){
期望(el.isPresent()).toBe(present);
}
});
}否则{
试一试{
text=等待字段。getText();
expect('不应存在('+fieldName+'))。toEqual('但它存在');
}捕获(e){
expect(field.isPresent()).toBe(present);
}
}
}否则{
如果(字段长度>0){
field.forEach(异步el=>{
试一试{
text=wait el.getText();
expect(el.isPresent()).toBe(true);
}捕获(e){
expect('存在('+fieldName+'))。toEqual('但我找不到它');
投掷e;
}
});
}否则{
试一试{
text=等待字段。getText();
expect(field.isPresent()).toBe(true);
}捕获(e){
expect('存在('+fieldName+'))。toEqual('但我找不到它');
投掷e;
}
}
}

}
尝试使用的陈旧性。不需要添加“not”。我使用了,但它仍然只挂在那里,没有错误。你为什么要等待它?它是否因某种行为而消失?如果没有,那么只需使用expect语句I have a clear column links by click将不会显示任何列。因此,我想通过验证没有显示任何列来测试它,但这没有帮助我尝试了expect,但它挂起了寻找该元素我想看看“this.columnNamesInTableSingle”中的内容尝试使用stalenessOf。不需要添加“not”。我使用了,但它仍然只挂在那里,没有错误。你为什么要等待它?它是否因某种行为而消失?如果没有,那么只需使用expect语句I have a clear column links by click将不会显示任何列。所以我想通过验证没有显示任何列来测试它,但这没有帮助我也尝试了expect,但它挂起了寻找该元素我想看看“this.columnNamesInTableSingle”中有什么内容