我想做这样的事情;
elem1 = document.getElementById(id1);
elem1.click()
// The page has been changed
elem2 = document.getElementById(id2);
elem2.click()
我的问题是,如果在document.documentElement的HTML完成其更改之前调用第二个'getElementById(id2)',它有时无法获取elem2,因为没有具有id2的HTML元素。 (上面代码中的每个javascript语句都是从第三方发送的,比如Selenium Server,并且有一个javascript循环可以获取句子并逐个运行。你可以认为循环就像Selenium Core一样)
我正在尝试编写像Selenium或Watir这样的工具。所以我不能使用这些工具。我认为Selenium或Watir有一种方法可以在第二个命令等待之后发送第二个命令,直到第一个命令导致页面完全被更改为止。我尝试了像window.onwebkittransitionend这样的事件,因为我在Webkit上尝试这个,但它没有用。
我认为promise或async不能解决这个问题,因为它需要的不仅仅是强制序列。它需要验证第二页是否已完全加载,因为第二个命令可以是其他命令,例如获取渲染图像的信息而不是单击。
是否有任何事件或方法检查页面更改是否已完成?哦,不幸的是我无法使用jQuery。我需要使用普通的Javascript。
感谢您阅读我的问题。