Automation 等待java脚本执行完成,然后单击链接(IE)

Automation 等待java脚本执行完成,然后单击链接(IE),automation,watin,Automation,Watin,我让这个页面每2秒钟显示一次语句(使用javascript),在它的末尾有一个链接,用户可以点击 使用IE,它将在javascript生成的语句完成之前单击链接。 当我使用Link.Click()时 (对于Firefox,它会抛出异常,这对我来说没问题) 有没有一种方法可以在点击链接之前等待javascript执行完成(IE) 短暂性脑缺血发作 编辑 //代码,非常简单的搜索链接,在浏览器中通过//“继续搜索”开始,然后单击 if (ln.Text.StartsWith("Continue se

我让这个页面每2秒钟显示一次语句(使用javascript),在它的末尾有一个链接,用户可以点击

使用IE,它将在javascript生成的语句完成之前单击链接。 当我使用Link.Click()时

(对于Firefox,它会抛出异常,这对我来说没问题)

有没有一种方法可以在点击链接之前等待javascript执行完成(IE)

短暂性脑缺血发作

编辑 //代码,非常简单的搜索链接,在浏览器中通过//“继续搜索”开始,然后单击

if (ln.Text.StartsWith("Continue searching", StringComparison.CurrentCultureIgnoreCase))
{
  ln.Click();
}

Thx从函数“Link.Click”返回false,则默认行为将被忽略

如果我理解正确,链接已经加载,但是javascript会在稍后附加一些事件,对吗?您可以使用
线程睡眠(500)
稍等一下吗?或者,您可以了解执行javascript代码后发生了什么。您必须了解该页面上的js是如何工作的,但可能js正在添加某种类或类似于该链接的内容,以便您可以在活动循环中使用一点
线程。睡眠
,直到js完成其工作。

您是否尝试使用
ie.WaitUntilContainsText(“我的文本”)

您能澄清一下吗?什么是
链接。单击()
?您可能应该在问题中添加代码。您也应该发布代码。这不是javascript问题,这看起来像是C#使用的服务器端和链接。单击是服务器端事件,而不是客户端事件。@Sean Kinsey:这个问题的标记不正确,但我没有rep重新标记。这应该首先标记为
WatiN
。甚至可能是
C
WatiN
是一个用于浏览器自动化的
C
库(你可以用谷歌搜索它)。这就是为什么我在回答中使用了
Thread.Sleep
。@Sean Kinsey:好吧,你自己删除了相应的标签:/thx作为回复,不幸的是链接。如果使用IE运行,单击是成功的(Firefox将抛出异常),而javascript仍在执行,页面仍在滚动,但尚未显示链接。thx,这就是我现在正在做的,只是想知道是否有一个更整洁的方式来做这件事。(顺便说一句,没有事件附加到链接,只是想在javascript停止执行后单击链接,而不是在它仍在执行时)thxYeah,但可能页面本身正在附加某种事件或修改页面DOM,因此您可以等待发生这种情况。这正是WatiN在等待“完成”或“直到某件事”时所做的——WatiN在
循环中积极等待。请参阅
tryfUncuntimeout
类和
Try
方法。您可以出于自己的目的使用该类。@prostynick:没有线程。JavaScriptin中的睡眠有没有从Watin访问javascript全局变量的方法?很可能。在
IE
对象(或帧)上尝试
Eval
。不幸的是,我以前从未尝试过,也无法证实这一点。