我尝试使用选择器验证,但无法获得从查询填充的动态数据的验证,也尝试使用await Page.Delay(n),但这不是一种正确的方法,因为有时运行查询可能需要一些时间。
page.click(selectors.xxx.nnn)
await delay (1000)
page.keyboard.type('abc')
await delay(8000)
page.keyboard.press('ArrowDown')
page.keyboard.press('ArrowDown')
page.keyboard.press('Enter')
await page.waitFor(selectors.xxx.nnn)
page.click(selectors.xxx.nnn)
await page.waitFor(selectors.xxx.abc)
因此,使用延迟可以是一个解决方案,但不是一个适当的解决方案。如果有一种方法,我可以让puppeteer中的浏览器自动化等待,而不是选择器,而是来自后端的数据。如果能确保下拉列表上的所有预期列表都被填充并且可以被选中,那将是很好的。
可以使用page.waitforfunction
等待,直到特定函数返回true。在您的情况下,您可以计算下拉框的选项。我假设“下拉框”是一个简单的HTML元素。
代码示例
await page.waitForFunction(() => document.querySelector('#id-of-selectbox').length > 0);
由于选择框上的lengty
属性返回其中的选项数,因此该代码将等到选择框中至少有一个选项后再继续。
我在一个数组上循环,并对一个api进行异步调用,返回的数据需要我与一个不同的数组合并,合并时面临的问题是,一些promise尚未解决,因此合并后产生的数组丢失数据.任何想法如何去做这件事。(我对Angular是新的)。数组循环通过至少有200个元素(我不知道数组的大小提前)我从每个元素获得id,我调用这个服务: 提前谢谢。
有人能帮我找到这个的xpath吗?提前谢谢。 HTML如下所示: 鼠标悬停时属性的值正在更改,如下所示: 以下是选项的检查代码:
页面上有两个下拉菜单。 当我点击第一个下拉菜单时,在第二个下拉菜单选项将在几秒钟后自动加载。 这是我的问题,我怎么能等待第二个下拉列表完全加载硒网络驱动程序。 注意:这是 div 下拉列表 xpath的第二个下拉列表: 我正在使用C#谢谢
我使用这段代码点击下拉列表: 我得到错误可能是因为有一个显示登录栏的层。之后,该元素被禁用,代码抛出异常。 是否可以实现一个等待元素不被禁用的listen?
如何让代码等待页面在Nodejs中完全加载?我使用SeleniumWebDriver版本4.0。0
问题内容: 我正在进行Ajax调用,该调用返回了一些信息,包括图像路径。 我在HTML中准备了所有这些信息,这些信息将作为一种弹出窗口显示。我只是将pop div的可见性从隐藏切换为可见。 要设置弹出div的位置,我必须根据图像的高度进行计算。因此,在设置位置并将可见性切换为可见之前,我必须等待图像加载知道其尺寸。 我尝试了递归,setTimeout,完整的img属性,while循环等技巧,但没有