protractor中元素定位方式
protractor常用元素定位方式:
1、by.css
<div class="parent">
<div class="child">
Child text
<div>{{person.phone}}</div>
</div>
</div>
var/let child = element(by.css('.parent')).$('.child');
element(by.css('.parent'))=$('.parent')
2、by.id
element(by.id('username'))=$('#username')
3、protractor特有的定位方式 :
1)
by.model('name')
2)
by.binding('bindingname')
4、定位一组元素:
element.all(by.css('.selector'))=$$('.selector')
这组元素第一个元素:$$('.selector').get(0)或者 $$('.selector').first(); 最后一个元素:$$('.selector').last();
5、by.name
<ul>
<li name="dog_name">Dog</li>
<li name="cat_name">Cat</li>
</ul>
var dog = element(by.name('dog_name'));
expect(dog.getText()).toBe('Dog');
6、查找子元素:
element.all(by.css('some-css')).first().element(by.tagName('tag-within-css'));
element.all(by.css('some-css')).get(index).element(by.tagName('tag-within-css'));
element.all(by.css('some-css')).first().all(by.tagName('tag-within-css'));
element(by.css('some-css')).element(by.tagName('tag-within-css'));
element(by.css('some-css')).all(by.tagName('tag-within-css'));
以下这些定位方式都可以用: