![](/img/trans.png)
[英]ASP.NET linkbutton enabled=false does not work in Firefox
[英]Selenium Click() does not work with ASP.NET LinkButton
我正在为ASPX页面编写Selenium文本案例。 我想单击此ASP.NET asp:LinkButton
元素:
<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('testtest123','')">Just try to click me</a>
但是,尽管Selenium可以毫无困难地找到元素,但Click()却什么也没做。 我没有遗漏任何异常或超时的元素,测试用例仅在点击正确触发的情况下运行。
这是单击元素的简单行;
Browser.Driver.FindElement(By.Id("testtest123")).Click();
此代码可以与其他ASP元素(例如按钮和文本框)配合使用。 我使用C#使用64位Webdriver和IE 11编写测试用例。
我在这里研究了解决方案: ASP.Net LinkButton防止回发不起作用-JavaScript,但它们似乎不适用于我的情况:
任何帮助将不胜感激!
编辑:我在此网站上发布了关于此问题的另一个主题: https : //code.google.com/p/selenium/issues/detail?id=7846&can=8&colspec= ID%20Stars%20Type%20Status%20Priority%20Milestone% 20Owner %20摘要
我遇到了类似的问题,其中某些控件被渲染为预期的,而另一些则没有,因此您确定链接ID为“ testtest123”吗?
您必须将“ 客户端ID模式”设置为静态,以使HTML ID与.NET中的ID相同(默认值是“继承”,但在web.config中通常将其设置为“自动ID”)。
<asp:LinkButton runat="server" OnClick="Test_Click" Text="Just try to click me" ID="testtest123" ClientIDMode ="Static"></asp:LinkButton>
如果渲染的HTML实际上是<A id=testtest123
则这是无效的HTML,因为该属性在该值周围没有引号。 如果这是实际值,那么问题比硒更严重。
一种可能是硒正确地单击了元素,但是在其余测试中,linkbutton的javascript代码执行得不够快。 这是因为当selenium遇到<input type="submit">
标记(如asp.net按钮控件)时,它知道它必须等待表单提交才能进入下一个测试步骤。 但是,linkbutton只是一个<a>
标记,更糟糕的是,它具有javascript作为href
而不是url。 因此,回发javascript可能需要50毫秒的时间执行或执行任何操作,在这种情况下,可能会进行如下测试:
步骤n:单击链接按钮-硒不知道需要多长时间,因此进入下一步
第n + 1步:单击某个按钮-如果这是在JS完成执行之前发生的,则好像第n步根本没有发生
在硒的情况下,这是合理的,因为它以程序的速度运行,而人类测试人员永远无法足够快地单击下一步以引起此类问题。 解决此问题的方法是添加延迟步骤,或者在单击链接按钮时设置的javascript变量上添加监视步骤。
编辑:
好的,所以这不是问题。 我几乎肯定它与href中的javascript有关,因此您可以在这里尝试答案吗: https : //stackoverflow.com/a/18847713/1981387 ?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.