2017-04-07 83 views
0

是新手程序員硒請幫助我找到子元素......紅寶石硒網絡驅動程序:如何通過類名匹配的子

我有以下HTML,我試圖找到類名svg子元素匹配下面HTML串deleteIcon

<div class="result-controls"> 
    <div class="attachment"> 
     <li class="add-attachment-button-column"><a><button>ADD ATTACHMENTS</button></a></li><input type="file" multiple="" style="display: none;"> 
    </div> 
    <li class="sign-button-column"><a href="javascript:void(0)"><button>SIGN</button></a></li> 
    <li class="draft-button-column"><a><button>DRAFT</button></a></li> 
    <li class="delete-column"> <a href="javascript:void(0)"><svg class="glyphicon-trash deleteIcon" viewBox="0 0 100 100"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#trash"></use></svg> </a></li> 
</div> 

我試圖找到svg元素類匹配 'deleteIcon'(row變量上面的html)

row.find_element(:xpath => "./li/a/svg[contains(@class,'deleteIcon')]") 

,但我得到的例外下面

*** Element info: {Using=xpath, value=./li/a/svg[contains(@class,'deleteIcon')]} (org.openqa.selenium.NoSuchElementException) 

可以使用硒網絡驅動器的人幫助我在Ruby中?

+0

的'svg'你貼有類「glyphicon-垃圾」,所以它不包含「deleteIcon」 ...我找不到字符串'deleteIcon'在上面的HTML – har07

+0

mybad中的任何地方,只是用svg元素中的deleteIcon類更新了問題 – RanPaul

+0

然後你的XPath應該已經工作了,假設'row'變量正確地引用了外部' div'。也許嘗試簡化你的XPath,看看它是否返回一些東西:'//svg [包含(@ class,'deleteIcon')]' – har07

回答

1

XPath中expression.Try使用下面的XPath不能使用svg作爲標籤名,

"./li/a/*[name()='svg'][contains(@class,'deleteIcon')]" 
+0

@sudharshan感謝您的答案,你也可以幫助我這個http:// stackoverflow .com/questions/43385291/ruby​​-selenium-web-drive-how-to-find-specific-element-by-xpath-div-id-and-css-cl – RanPaul

+0

當然!如果我上面的答案幫助你考慮接受它! –