2010-02-02 13 views
6
Ben Selenyum belirli bir içeriğe sahip <div> ve click onu bulmalıyız

, böylece:Selenium: Belirli bir içerikle div nasıl bulunur?

 
<tr> 
    <td>clickAndWait</td> 
    <td>//div[@class='gwt-Label' ***WITH CONTENT='Logout'***]</td> 
    <td>5000</td> 
</tr> 

Bunu yapmanın bir yolu var mı? Mutlak bir xpath kullanmak istemiyorum.

//div[@class='gwt-Label' and contains(., 'Logout')] 

cevap

7

bu deneyin

<div class="gwt-Label">This FindMe DIV</div> 

kullanılarak bulunabilir misiniz:

css=.gwt-Label:contains('FindMe') 
+0

harika Sesler dize() kullanımı, ama bunu olamıyorum iş. Dokümantasyon için arandı, ancak hiçbiri bulunamadı; bir bağlantın var mı? –

+0

http://www.w3.org/TR/xpath/#function-contains – krosenvold

+0

Oh. Tek tırnakları '.' Etrafında bırakmanız gerekir. Düzenlendi – krosenvold

8

Ayrıca kullanabilirsiniz CSS konumlandırıcılarını:

+0

Selenium bulucuyu tespit ediyor, div'u buluyor, ancak tıklama asla geçmiyor! Herhangi bir fikir? –

+0

DIV, tıklamaya yanıt veren öğe olmayabilir. Daha uygun olabilecek bir ebeveyn/çocuk elemanı var mı? Bazen 'click' ile ilgili sorunlar da vardır ve bunun yerine 'mouseDown',' mouseUp' komutlarını deneyebilirsiniz. –

1

Belki XPath sadece oldukça yapmıyor ne sence. Tüm metni bir blokta birleştirmek için string() işlevini kullanmanız gerekebilir.

Örneğin, TestPlan (arka uç olarak selenyum kullanarak) içinde böyle bir şey yapacağını:

Click //div[@class='gwt-Label'][contains(string(),'Logout')] 

Not

İlgili konular