Javascript 在safari上运行量角器测试,例如;在页面上找不到角度https://angularjs.org/"
我尝试在Safari上运行量角器测试,但即使是一个官方示例(我在conf.js和todo-spec.js文件下面附上)也有问题 当我设置browser.ignoreSynchronization=true时;()然后测试工作,但我不能利用量角器 使用角度1.6.4Javascript 在safari上运行量角器测试,例如;在页面上找不到角度https://angularjs.org/",javascript,angularjs,selenium,safari,protractor,Javascript,Angularjs,Selenium,Safari,Protractor,我尝试在Safari上运行量角器测试,但即使是一个官方示例(我在conf.js和todo-spec.js文件下面附上)也有问题 当我设置browser.ignoreSynchronization=true时;()然后测试工作,但我不能利用量角器 使用角度1.6.4 运行测试日志: $ node ./node_modules/protractor/built/cli.js conf.js --browser safari (node:5778) DeprecationWarning: os.t
- 运行测试日志:
$ node ./node_modules/protractor/built/cli.js conf.js --browser safari (node:5778) DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead. [09:49:28] I/hosted - Using the selenium server at http://MAC_IP:4444/wd/hub [09:49:28] I/launcher - Running 1 instances of WebDriver Started [09:49:41] E/protractor - Could not find Angular on page https://angularjs.org/ : angular never provided resumeBootstrap F Failures: 1) angularjs homepage todo list should add a todo Message: Failed: Angular could not be found on the page https://angularjs.org/. If this is not an Angular application, you may need to turn off waiting for Angular. Please see https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load Stack: Error: Angular could not be found on the page https://angularjs.org/. If this is not an Angular application, you may need to turn off waiting for Angular. Please see https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load at /home/tester/proj/js/node_modules/protractor/built/browser.js:506:23 at ManagedPromise.invokeCallback_ (/home/tester/proj/js/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1379:14) at TaskQueue.execute_ (/home/tester/proj/js/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2913:14) at TaskQueue.executeNext_ (/home/tester/proj/js/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21) at asyncRun (/home/tester/proj/js/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2775:27) at /home/tester/proj/js/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7 at process._tickCallback (internal/process/next_tick.js:103:7) From: Task: Run it("should add a todo") in control flow at Object.<anonymous> (/home/tester/proj/js/node_modules/jasminewd2/index.js:79:14) From asynchronous test: Error at Suite.<anonymous> (/home/tester/proj/js/todo-spec.js:2:3) at Object.<anonymous> (/home/tester/proj/js/todo-spec.js:1:1) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) 1 spec, 1 failure Finished in 11.68 seconds [09:49:41] I/launcher - 0 instance(s) of WebDriver still running [09:49:41] I/launcher - safari #01 failed 1 test(s) [09:49:41] I/launcher - overall: 1 failed spec(s) [09:49:41] E/launcher - Process exited with error code 1
- todo-spec.js:
describe('angularjs homepage todo list', function() { it('should add a todo', function() { browser.get('https://angularjs.org'); element(by.model('todoList.todoText')).sendKeys('write first protractor test'); element(by.css('[value="add"]')).click(); var todoList = element.all(by.repeater('todo in todoList.todos')); expect(todoList.count()).toEqual(3); expect(todoList.get(2).getText()).toEqual('write first protractor test'); // You wrote your first test, cross it off the list todoList.get(2).element(by.css('input')).click(); var completedAmount = element.all(by.css('.done-true')); expect(completedAmount.count()).toEqual(2); }); });
希望它能帮助你/给你足够的信息 我知道Safari 10中的异步内容存在一些问题,请参见量角器git。它描述了Safari Desktop的解决方案
希望它能帮助你/给你足够的信息 您使用的是哪个版本的Safari?设置
browser.ignoreSynchronization=true
将告诉量角器不要等待Angular完成页面/Angular内容的加载。默认情况下,量角器将询问Angular是否加载了所需的数据/进程。Safari 10.1(11603.1.30.0.34)您使用的是哪个版本的Safari?设置browser.ignoreSynchronization=true
将告诉量角器不要等待Angular完成页面/Angular内容的加载。默认情况下,量角器将询问Angular是否加载了所需的数据/进程。Safari 10.1(11603.1.30.0.34)这与ignoreSynchronization具有相同的效果。我需要挂接一些事件或类似的东西…这会带来与ignoreSynchronization相同的效果。我需要参与一些事件或类似的事情。。。
exports.config = {
framework: 'jasmine2',
seleniumAddress: 'http://MAC_IP:4444/wd/hub',
specs: ['todo-spec.js']
};
describe('angularjs homepage todo list', function() {
it('should add a todo', function() {
browser.get('https://angularjs.org');
element(by.model('todoList.todoText')).sendKeys('write first protractor test');
element(by.css('[value="add"]')).click();
var todoList = element.all(by.repeater('todo in todoList.todos'));
expect(todoList.count()).toEqual(3);
expect(todoList.get(2).getText()).toEqual('write first protractor test');
// You wrote your first test, cross it off the list
todoList.get(2).element(by.css('input')).click();
var completedAmount = element.all(by.css('.done-true'));
expect(completedAmount.count()).toEqual(2);
});
});