2014-02-05 71 views
0

這裏是一些示例代碼和我想做的事:webdriver的cssSelector屬性

<dl id="parentId"> 
    <dt> 
     <a someattr="whatIwant"/> 
    </dt> 
    <dt> 
     <a someattr="whatIwantNextTime"/> 
    </dt> 
</dl 

我試圖選擇具有someattr =「whatIwant」的一個元素。這是我目前cssselector:

"dl[id='parentId']>a[someattr='whatIwant']" 

還有:

"dl[id='parentId']>dt>a[someattr='whatIwant']" 

不幸的是,這些工作的;我似乎正確地關注了w3schools模板,但是當我嘗試運行這個元素時,無法找到元素,或者在添加'> dt>'時發現非法字符串異常。有沒有人有任何見解如何做到這一點?

謝謝。

回答

0

所以顯然我沒有做足夠的研究,因爲我在發佈後5分鐘就知道了這一點。後代選擇'完美的作品,那就是:

"dl[id='parentId'] a[someattr='whatIwant']" 
2

編輯:您正在使用的直接後代選擇策略(>)這只是如果元素是直接的孩子的作品。如果你想的descenant,使用(

dl#parentId a[someattr='whatIwant'] 

而且,假設你的whatIwant是唯一的,那麼這個選擇將會很好地工作..

更進一步,你可以這樣做:

dl#parentId > td:nth-child(X) > a 

其中X是1,2,3(你想要的<dt />的指標。

還要確保您正在使用By.cssSelector策略,如果您正在指定CSS選擇器,則不使用其他策略。

相關問題