2014-09-05 118 views
0

我正在爲ASPX頁面編寫一個Selenium文本案例。我想點擊這個ASP.NET asp:LinkButton元素:Selenium Click()不適用於ASP.NET LinkBut​​ton

<asp:LinkButton runat="server" OnClick="Test_Click" Text="Just try to click me" ID="testtest123"></asp:LinkButton> 

哪像這樣出現在由.NET生成的HTML頁面:

<a id="testtest123" href="javascript:__doPostBack(&#39;testtest123&#39;,&#39;&#39;)">Just try to click me</a> 

不過,雖然硒有沒有問題找到元素,則點擊() 什麼也沒做。我沒有找到缺少異常或超時的元素,測試用例就像點擊正確啓動一樣運行。

下面是點擊元素的簡單線條;

Browser.Driver.FindElement(By.Id("testtest123")).Click(); 

此代碼可與其他ASP元素(如按鈕和文本框)正常工作。我使用C#中使用64位的webdriver和IE 11

我研究解決方案在這裏寫我的測試用例:ASP.Net LinkButton Prevent Postback Not Working - JavaScript,但他們似乎並不適用於我的情況:

任何幫助將不勝感激!

編輯:我張貼另一個線程關於這個網站的問題: https://code.google.com/p/selenium/issues/detail?id=7846&can=8&colspec=ID%20Stars%20Type%20Status%20Priority%20Milestone%20Owner%20Summary

+0

您是否嘗試過使用32位Firefox驅動程序來排除Selenium錯誤? – Alexander 2014-09-05 10:54:43

+0

那麼點擊那個'LinkBut​​ton'後你的測試用例是做什麼的? – mostruash 2014-09-05 10:59:29

+0

它試圖點擊上面的鏈接按鈕顯示的另一個按鈕。 – user1531921 2014-09-05 11:12:20

回答

0

我曾在那裏爲espected和其他不這樣做,那麼你肯定鏈路ID是一些對照呈現了類似的問題。「 testtest123" ?

您必須將Client ID Mode設置爲靜態,以便使HTML ID與.NET中的相同(默認爲繼承,但在web.config中它一般設置爲AutoID)。

<asp:LinkButton runat="server" OnClick="Test_Click" Text="Just try to click me" ID="testtest123" ClientIDMode ="Static"></asp:LinkButton> 
+0

是的,我確定這個ID是正確的。我檢查了HTML輸出並進行了驗證。雖然謝謝! – user1531921 2014-09-05 12:42:11

0

如果渲染HTML實際上是<A id=testtest123那麼,是不是有效的HTML,因爲屬性沒有周圍的值引號。如果這是實際值,那麼問題是比Selenium更上游

+0

對不起,我的錯。源html確實有引號。我更新了上面的源代碼。 – user1531921 2014-09-08 12:08:06

0

一種可能性是硒正確地點擊了元素,但linkbutton的JavaScript代碼沒有足夠快地執行其餘的測試。這是因爲當硒遇到<input type="submit">標記(如asp.net按鈕控件)時,它知道在進入下一個測試步驟之前它必須等待表單提交。然而,鏈接按鈕只是一個<a>標籤,更糟的是,它具有JavaScript作爲href而不是url。所以它可能是JavaScript的需要50毫秒回發執行或什麼,在這種情況下,有可能測試是這樣的:

n步:點擊LinkBut​​ton的 - 硒不知道多久,這需要這麼進入下一步驟

步驟N + 1:點擊一些按鈕 - 如果執行完JS之前出現這種情況,它會像第n步,因爲它的速度運行並沒有在所有

發生這是硒的情況下,合理的的程序,而人類測試人員永遠無法足夠快地點擊下一步,導致這樣的問題。解決這個問題的方法是添加一個延遲步驟,或者,在點擊鏈接按鈕時設置的javascript變量上添加監視步驟。

編輯:

好的,那麼這不是問題。我幾乎肯定它與href中的javascript有關,所以你可以在這裏試試這個答案:https://stackoverflow.com/a/18847713/1981387

+0

沒有下一步。這個用例只會嘗試點擊鏈接按鈕(即一行代碼),然後通過查看沒有任何反應的頁面來手動驗證。 – user1531921 2014-09-06 17:15:24

相關問題