2014-02-24 41 views
1

我們已經構建了一個網站,需要使用量角器進行測試。該網站有許多沒有任何ID的元素。所以protractor.by.id在這裏不起作用。我有protractor.by.css選項,但如果元素組應用了相同的css,我將如何區分唯一元素。請建議。如何測量量角器中沒有標識的元素的單擊事件

<div class="buttons contact_page"> 
<a href="http://mysite.se/om-oss/" class="btn btn-default button">Om oss</a> 
<a href="http://mysite.se/offert-3/" class="btn btn-default button">Offert</a> 
<a href="http://mysite.se/tjanster/" class="btn btn-default button">Våra Tjänster</a> 
</div> 

感謝 Utpal

+0

的修爲在以下鏈接https://github.com/angular/protractor/issues/551 – Utpal

回答

1

您是否嘗試過使用:第n個孩子選擇與CSS選擇器?所以,你可以這樣做:

var firstBtn = element(by.css('.contact_page btn:nth-child(0)')), 
    secondBtn = element(by.css('.contact_page btn:nth-child(1)')), 
    thirdBtn = element(by.css('.contact_page btn:nth-child(2)')) 

下面是關於第n個孩子是如何工作的好文章,以防萬一http://css-tricks.com/how-nth-child-works/

讓我知道如何去!

1

你的情況,你可以使用:

element(by.partialLinkText("oss")); 
1

有很多不同的方式來選擇與protactor的元素。你可以看看量角器unit test看到所有可用的定位器。

正確的定位器主要取決於您的具體情況,以使您的測試儘可能健壯。

依靠文本或索引有時可能會有點片狀和添加一個特定的ID或CSS類元素也可能是一個選擇考慮。

+0

你的解決方案是有幫助的中繼發現,但我沒有得到任何選項來選擇總的沒有子項在div裏面寫我的測試用例。這將是什麼選擇。 – Utpal

+0

選擇你可以嘗試element.all(...)。count()的子女總數。看看這個測試https://github.com/angular/protractor/blob/master/spec/basic/findelements_spec.js#L395 –

+0

Cauden我正在測試的部分是非角度部分,所以它給錯誤「object has沒有方法所有「和我寫的代碼是這樣給出var元素= driver.all(protractor.By.css('。clearfix .col206')); expect35(element.length).toEqual(22); – Utpal

0

這可以通過使用by.cssContainingText()來完成。檢查出docs

在你的情況,如果你想選擇中間的按鈕:

element(by.cssContainingText('.btn', 'Om oss'); 
0

試試這個。這將點擊第二個標籤。

element(by.css('.contact_page ')).all(by.tagName('a')).get(1).click(); 
相關問題