使用量角器测试一个无角网站
Testing a non angular website using Protractor
我正试图通过量角器测试我的网站,这是一个非角度的网站。我的代码是:
describe("Supplier Portal: Login ", function () {
//ui.setSmallScreenSize();
// ui.testLogger(100);
it("test", co.wrap(function* () {
browser.ignoreSynchronization = true;
yield browser.driver.get("https://cit.supplier.ext.here.com/");
yield element(by.xpath("//*[@id='"rnav'"]/li[2]/a")).click();
var elmOK = element(by.xpath( "//*[@id='"sign-in-email'"]"));
browser.driver.wait(protractor.until.elementIsVisible(elmOK.getWebElement()))
}));
});
但是当我尝试执行代码时,我得到了以下错误:
Failed: No element found using locator: By(xpath, //*[@id="sign-in-email"])
但是元素已经在网站上了
请告诉我哪里做错了
因为你是在一个无角的网站上工作,并且使用browser.ignoreSynchronization = true
, Protractor不会等待angular
变量可用,所以它开始启动测试,因为它认为应用程序已经准备好了,更多信息在这里。
您需要通过使用预期条件来操作控制流,以便Protractor知道它正在等待某些东西。这将使您的测试更加一致和可靠。
几个例子来指导你:
等待一个元素被加载/出现在DOM中:
var EC = protractor.ExpectedConditions;
var ele = element(by.css('div.class'));
browser.wait(EC.presenceOf(ele), 5000);
我传入的5000参数值表示等待最大 5秒,如果5秒内没有出现则失败。
等待一个可见元素:
browser.wait(EC.visibilityOf(ele), 5000);
等待一个元素可以点击:
browser.wait(EC.elementToBeClickable(ele), 5000);
同样,重要的是要注意这些是隐式等待,它们将等待所提供的时间参数的最大值。等待的时间没有保证,当它们找到你让它等待的元素时,它们会尽快启动。
相关文章:
- 有任何可能将facebook实时信使整合到一个网站中
- 如何使用JS/jQuery在另一个网站上显示iframe中的特定内容
- Javascript.如何用javascript将信息发送到另一个网站
- 如何从特定类别重定向到另一个网站
- jquery点击另一个网站上的按钮
- Firefox将我转发到另一个网站,而不是在Drag&滴
- 代理一个网站能够在iframe中进行所见即所得编辑-它是如何工作的
- window.onclick在一个网站中使用两次
- 用PHP读取另一个网站的源代码,并将其作为字符串提供给JavaScript
- 在我的浏览器中用类似ctrl+s的PhantomJS保存一个网站
- 下载网站'的内容并在另一个网站中显示(部分)
- 有没有一个网站可以生成所有可能的显示单词的方式
- 将登录链接到另一个网站而不提供密码
- 在一个网站上包含多个声音文件
- Javascript对一个网站起到了反作用
- 如何在我的服务器上创建javascript,该服务器使用该服务器上的后端,并将在另一个网站上使用
- 通过javascript将RSS提要广播到另一个网站
- 我正在尝试为一个网站创建一个文本框,可以将文本更改为用户希望的任何格式
- 使用表单值在另一个网站上创建帐户
- 一个网站有什么方法可以区分微软边缘和谷歌Chrome吗;的渲染引擎