当前位置: 首页 > 面试题库 >

如何在量角器测试中使用browser.getCurrentUrl()?

秦景同
2023-03-14
问题内容

今天,我一直在努力处理以下这些量角器代码行:

element(by.linkText("People")).click();
browser.waitForAngular();        
var url = browser.getCurrentUrl();
...

getCurrentUrl放在waitForAngular()语句后似乎总是失败。

错误输出太模糊:

UnknownError:JavaScript错误:等待结果时卸载文档

那么,单击超链接并检查新URL的正确方法是什么?

这是我的测试:

如果我getCurrentUrl()在点击链接之前,

it('can visit people page', function () {
    var url = browser.getCurrentUrl();
    element(by.linkText("People")).click();
    expect(true).toBe(true);
});

测试将通过。

如果我getCurrentUrl()点击链接后,

it('can visit people page', function () {
    var url = browser.getCurrentUrl();
    element(by.linkText("People")).click();
    expect(true).toBe(true);
    url = browser.getCurrentUrl();
});

UnknownError上面的输出在Protractor中引发错误。什么地方出了错?


问题答案:

不用waitForAngular()调用,而是 等待URL更改

browser.wait(function() {
  return browser.getCurrentUrl().then(function(url) {
    return /index/.test(url);
  });
}, 10000, "URL hasn't changed");

最初由@juliemr在UnknownError上建议:javascript错误:等待result时文档被卸载。



 类似资料:
  • 问题内容: WebStorm中提供了一种运行和调试量角器Web测试的方法。我只想在这里分享这个答案 问题答案: 获取节点路径(在终端中输入) 在WebStorm中:单击“ 编辑配置 ”-“ 运行 ”按钮左侧的下拉菜单(绿色箭头,类似于“播放”按钮) 单击“添加按钮”(绿色 + )以添加新的Node配置。选择“ Node.js ” 填写参数: 节点解释器 :Node.js的完整路径(从步骤1开始)

  • 我正在使用Angular 9、Node v14和e2e测试,使用Cucumber、量角器和量角器Cucumber框架。 量角器。conf.js tsconfig。e2e。json 发射json package.json 我可以在VSCode中启动调试器,但问题是每个断点都是未绑定的断点。 我还尝试在tsconfig中添加。e2e。json和我也尝试加入launch。json 问题似乎是ts节点在内

  • 我正在使用量角器为AngularJS应用程序开发一个自动化测试套件。 在开发测试脚本时,我一直使用,因此在执行脚本时,我必须手动告诉它继续执行测试的每一步。现在我很高兴我的测试能够正确执行,并且希望删除对的调用,这样我就可以让脚本自己运行到完成。 但是,我知道,我不能只删除对的调用,而不添加一些内容,允许测试在执行下一步之前暂停/等待浏览器加载(目前,在运行对的调用后,我告诉脚本继续所用的时间足以

  • 我为我的角度应用程序创建了一个简单的量角器测试。当我单击按钮时,输入值会被设置: e2e 测试期望输入填充“hoera”: 当我用“量角器配置”运行测试时,我得到: 我希望这样的东西:预期的“hoera”等于“hoera”?我如何让它通过,也许在角度设置值之前有一个延迟?这是代码的链接:https://github.com/dimitri-a/protractor_new

  • 问题内容: 当前,我有一些只在特定条件下执行的测试用例。 使用以上语法将导致siteNotAllowingLogin通过此测试。我知道有一种解决方案可以将测试标记为PENDING,但是如果该测试不适用,我宁愿不显示该测试。 如果可能的话,我也想在测试用例中保留逻辑。因此,将if块保留在测试用例中。 如果不满足条件,如何跳过此测试的任何建议,以使其不会在结果中显示为PENDING或PASSED。 帮

  • 问题内容: 是否可以像在单元测试中一样在量角器测试中访问angular? 用例是我有一个可以转换文本的服务,并且我想访问该服务以转换实际测试脚本中的某些数据。我知道量角器中有这种方法,但是我不知道如何为此目的使用它。 将不胜感激! 问题答案: 有一个函数称为validate()。在dom中找到一个元素,然后运行表达式。 例如。如果要计算http://angularjs.org/网站(在“添加某些控