asp.net - Selenium IDE click() 超时

标签 asp.net selenium

我有一个简单的页面,在提交时返回一条 ajax 成功/错误消息。使用标准的 ASP.Net 链接按钮提交表单。

我的 Selenium 测试正确地点击了链接按钮,但是点击事件超时并失败了。其余测试用例条件通过(因为 selenium 成功单击链接并显示 ajax 成功消息)。

我能想到的是,出于某种原因,click() 正在调用 waitForPageToLoad,这就是它超时的原因。有什么办法可以抑制这种情况,还是我找错树了?

是否有另一种方法来处理不关心事件触发后发生的情况的点击?

更多信息:在 Vista 上的 Firefox 3.5.2 中托管的 Selenium IDE 1.0.2(不要问)

weirdness


解决方法

我通过在 user-extensions.js 中创建自己的 click() 函数成功地通过了测试,该函数调用 Selenium.decorateFunctionWithTimeout() .虽然我的测试现在确实通过了,但这并不是一个理想的解决方案。

如果您想自己尝试,请将以下内容添加到 user-extensions.js(确保您通过工具 | Selenium IDE | 选项 | 选项 | 常规 | Selenium Core 在您的 Se:IDE 配置中引用此文件扩展)

Selenium.prototype.doBeatnicClick = function(locator) {
/**
* Clicks on a link, button, checkbox or radio button.
* Hacky workaround for timeout problem with linkbutton.
* Suspect there is an issue with Selenium.decorateFunctionWithTimeout()
*/
var element = this.browserbot.findElement(locator);
var elementWithHref = getAncestorOrSelfWithJavascriptHref(element);

if (browserVersion.isChrome && elementWithHref != null) {

    var win = elementWithHref.ownerDocument.defaultView;
    var originalLocation = win.location.href;
    var originalHref = elementWithHref.href;

    elementWithHref.href = 'javascript:try { '
        + originalHref.replace(/^\s*javascript:/i, "")
        + ' } finally { window._executingJavascriptHref = undefined; }';

    win._executingJavascriptHref = true;

    this.browserbot.clickElement(element);

}

this.browserbot.clickElement(element);

};

重新加载 Se:IDE,您将可以访问一个新命令 beatnicClick(),它应该可以在您遇到 click() 超时的情况下工作。

希望这会在下一版本的 Se:IDE 中得到修补或修复。

最佳答案

我相信这是在 OpenQA Jira 中提出的:http://jira.openqa.org/browse/SIDE-316 .这里也有讨论:http://clearspace.openqa.org/message/64455

在问题解决之前,您可以恢复到 Selenium IDE 的 1.0b2 版本 http://release.seleniumhq.org/selenium-ide/1.0-beta-2/但这不会安装在 Firefox 3.5.x 上,除非您在 about:config 中禁用 extensions.checkCompatability。参见 http://kb.mozillazine.org/Extensions.checkCompatibility

关于asp.net - Selenium IDE click() 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391718/

相关文章:

asp.net - 在 ASP.NET MVC 3 中为未经身份验证的用户缓存主页

html - 浏览器呈现的代码而不是页面

c# - 单元测试 Web App 时如何模拟应用程序路径

java - 如何使用 Selenium Java 在表格或 div 内滚动?

java - WebElement 进行谷歌搜索

java - 使用 JQuery 选择和识别元素以在 Selenium 2 Java API 中使用它

selenium - 错误号 : 33: SessionNotCreatedError session not created exception from unknown error while trying to simulate chrome browser using SeleniumBasic

asp.net - IIS ASP.Net 网站 - ManagedPipelineHandler 错误(尝试在不存在的网络连接上执行操作)

javascript - Window.open 不返回窗口引用 IE9

java - 通过 XPath [Selenium] 从 Span 元素中提取文本