安装依赖
- protractor
npm install -g protractor
- karma-jasmine
npm install --save-dev karma-jasmine
-
javaJDK
-
webdriver-manager
webdriver-manager update
文件
- test.js 测试文件
- protractor_conf.js protractor配置文件
启动测试
- 一个命令窗口
webdriver-manager start
- 第二个命令窗口
protractpr protractor_conf.js
protractor api
http://www.protractortest.org/#/api
- browser.get('http://baidu.com')导航到当前页面
- element找到元素
- element.all找到元素集合
- by 查找元素
- by.binding : ng-bind, {{}}
- by.model : ng-model
- by.repeater : ng-repeater
- by.id : id选择器
- by.css : css选择器
- Array.get(2) : 选择第2个
- click 点击事件
- sendKeys 书写内容
- 获取信息,判断
- getText 获取文本
- getSize 获取尺寸
- getAttribute 获取属性
- isEnabled
- isSelected
- isDisplayed
- getTitle
- sleep
- brower.wait()等待某元素出现
browser.wait(function(){
return browser.isElementPresent(by.model("password"));
},20000);
jasmine api
https://jasmine.github.io/2.0/introduction.html
- expect 断言
- 验证
- toEqual等于
- toBe 相当于===
- toContain包含,用于数组,字符串
- toBeLessThan 小于,用于数字
- toBeGreaterThan 大于
- toMatch 正则匹配
- toBeNull 与null比较
- toBeTruthy 与布尔值比较;
其他
- 设置浏览器窗口大小位置
capabilities: {
'browserName': 'chrome',
"chromeOptions" : {
args: ["--window-size=300,300","--window-position=300,300"],
}
},
- javaJdk和webdriver-manager
应该先安装javaJdk,再执行webdriver-manager update;
3. 文件上传
element(by.name('upload_file')).sendKeys("C:\img\a.jpg");
用选择器获取到文件上传的input标签,然后sendKeys().里面是文件的路径,注意目录分隔符,需要先转译才能用即
4. 清除input标签里的内容用clear
5. 键盘事件还是用sendKeys