【发布时间】:2012-10-01 13:10:05
【问题描述】:
我正在尝试做一些网络自动化来登录并在动态加载的网页上使用 WatiN 检查订单状态。我正在使用 Visual Studio C# Express 2010 和 IE 浏览器。
从 <TD> 获取 .Text 的几段代码昨天工作得很好,但现在不再工作了。有问题的<TD> 包含<NOBR> 和<INPUT>,这是问题所在吗?
我需要的文本也在<INPUT> 中,但标签没有定义ID 或NAME 属性,并且包含在测试之间不一样的内部文本/值。我无法编辑有问题的网站,否则这在很久以前就已经修复了。
罪魁祸首:
public TableCell Status {
get {
return Document.TableCell(Find.ById("elementID"));
}
}
其他 TableCells 不工作,但 TextFields 和按钮很好。我的预感是该网站很大,WatiN 可能偶尔会超时,试图找到该元素。不过,我相当肯定,WatiN 只是在到达文档末尾时才抛出 ElementNotFoundException()。 (???)
表单元素在到达它们之前没有完全加载以进行调试,所以我认为这可能是一个问题,但不是元素的 for 元素都已正确加载并且所有元素都存在。此外,这只是一个调试问题,当我使用 .dll 文件将 .exe 复制到桌面时,它运行良好。
我已经设置了我的调试器,以便禁用“启用属性评估和其他隐式函数调用”,但这没有帮助。
当我运行直接 .exe 但不是通过 Visual Studio 时,该方法有效。然后当我重新构建相同的代码并再次将 .exe 复制到桌面时它停止工作。
更新:显然,要连接的网站的网络管理员进行了一些更改,破坏了很多东西,所以也许我的代码毕竟没问题?当我得到他的回复时,我会再次更新。
【问题讨论】:
-
可能您在上次编辑代码时添加了一个小错误。
-
我没有编辑它,这是有趣的部分。当我当天关闭它时它正在工作,第二天早上它坏了,无法读取
元素......
标签: c# html-table watin webautomation