2014-09-05 76 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

相关问题