我正在尝试做一些网络自动化来登录并在动态加载的网页上使用 WatiN 检查订单状态。我正在使用 Visual Studio C# Express 2010 和 IE 浏览器。
从昨天运行良好的 .Text 获取 .Text 的几段代码<TD>
不再起作用。有<TD>
问题的包含一个<NOBR>
and <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 再次复制到桌面时,它停止工作。
更新:显然,要连接的网站的网络管理员做了一些改变,破坏了很多东西,所以也许我的代码毕竟还好?当我得到他的回复时,我会再次更新。