【发布时间】:2015-04-28 04:06:08
【问题描述】:
我的测试目标页面有 SSO 集成登录。一旦我点击页面,将发生 SSO 集成 Windows 身份验证,然后定向到主页。
我尝试关闭同步,它适用于第一次测试以检查标题,但对于第二次测试,它将返回错误无法定位元素,当我打开同步时,它将返回不同步错误和未定义错误。
describe('Test area to ', function () {
var menuObjects = require('../page/MenuObjects.js');
it('Verify Page Title', function () {
menuObjects.setSyncOff();
browser.get('/home/');
expect(browser.getTitle()).toEqual('Home');
browser.driver.sleep(3000);
});
it('Navigate ', function () {
menuObjects.setSyncOn();
menuObjects.menuButton.click();
});
});
导航错误消息 - 使用 menuObjects.setSyncOn();
等待量角器与页面同步时出错:“无法读取未定义的属性'get'”
导航错误消息 - 使用 menuObjects.setSyncOff();
NoSuchElementError: No element found using locator: By.id("menu-link")
ng-app 包含在正文中的 div 中:
<body style="width: 100%">
<div class="frame" style="width: 100%">
<div class="container-fluid" style="width: 100%">
<div class="" style="width: 100%">
<div style="width: 100%">
<!--_AngularBaseLayout: BEGIN-->
<div ng-app="myHomeApp" ng-cloak class="ng-cloak">
<div ng-view id="ng-view"> </div>
</div>
有什么建议吗?
【问题讨论】:
-
应该有 id
menu-link的元素在哪里?假设您的 menuObjects.setSyncOn 正在切换browser.ignoreSynchronization,请尝试在关闭时通过browser.driver.get直接访问 webdriver。 -
是的,我设置了 ignoreSynchronization true false。 id
menu-link位于正文的第 11 个 div 标签处。
标签: angularjs testing selenium-webdriver protractor end-to-end