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'));

以下这些定位方式都可以用: 

protractor中元素定位方式