2014-02-23 56 views
0

我想與之交互的頁面包含:如何找到使用硒的<a>?

<a class="qwe" onclick="abc;">

我不能找到一種方法,利用硒單擊該對象。 嘗試: By.XPath("/a[contains(text(),'qwe')]"By.ClassName("qwe")

它沒有發現任何東西。

<div class="page-characterselect"> 
<div class="charselect"> 
<div><ul><li> 
<a class="Player_Controller" onclick="client.characterSelect('[email protected]');"> 
<h4 class="char-list-name">XYZ</h4> 
<h5 class="char-list-level">Level <span>24</span></h5> 
<h5 class="char-list-class">Control Wizard</h5> 
<h5 class="char-list-race">Sun Elf</h5> 
</a> 
</li></ul></div> 
</div> 
</div> 

回答

1

By.XPath("/a[contains(text(),'qwe')]"是錯誤的XPath,因爲它是從當前節點開始,查找鏈接文本等於「QWE」,但你想要的是類名。

你應該從一開始就發佈你的HTML。這是我的建議。

By.XPath(".//div[@class='charselect']//a[@class='Player_Controller']"); 
By.CssSelector(".charselect .Player_Controller"); 

如果有與Player_Controller類等各個環節,則需要發佈更多<li>看看那些是什麼之間的差異。

+0

只有一個Player_Controller類鏈接,所以第一個應該工作。謝謝! – Chumanista

+0

WebDriver.dll中發生未處理的「OpenQA.Selenium.InvalidSelectorException」類型異常 附加信息:給定的選擇器.//div[@class='charselect']//a[@class='Player_Controller')]無效或不會導致WebElement。發生以下錯誤: InvalidSelectorError:由於以下錯誤,無法找到具有xpath表達式的元素://div[@class='charselect']//a[@class='Player_Controller')]: [例外......「這個表達不是一個合法的表達。」代碼:「12」nsresult:「0x805b0033(SyntaxError)」位置:「」] – Chumanista

+0

第二個工作正常。 – Chumanista