我正在尝试抓取使用Dojo Webkit和NightmareJS制作的网页。我遇到的问题是,在尝试单击按钮以浏览页面时,我需要确保在尝试单击按钮之前已加载按钮本身,否则会出现错误,例如:“无法通过选择器找到元素:选择器”,这是意料之中的。
添加等待(毫秒)有效,但在服务器速度较慢或要显示的内容较多的情况下,加载可能会超出等待时间,这显然是我想要避免的。然后我尝试使用 wait(selector) 方法,结果是它在那个时候停止了。在这一切过程中,Electron 浏览器是打开的,页面已经完全加载成功,包括带有选择器的按钮,我可以点击它并手动完成所有操作。
这是我正在尝试做的一个例子:
nightmare
.click('#button')
.wait('#otherbutton')
.click('#otherbutton')
.catch((error) => console.log('Error:...', error));
第一个按钮被点击并加载页面,但随后它挂在那里,第二个点击功能永远不会发生。
编辑:在对Dojo Webkit进行一些研究之后,我发现它有一个特殊的加载器,我认为它会扰乱网页的加载方式,但因为我不确定等待(选择器)如何检查页面以确定是否元素已加载到页面中,我不能确定 dojo 加载程序是根本原因,即使这样,我仍然希望有某种解决方法。