node.js - 使用不同的场景 Async/Await 多次运行 Puppeteer 测试
问题描述
嗨,伙计们,我需要一些帮助来解决一个场景
- 我有一个数组,里面装满了 Google、Yahoo 100 个对象。
- 如果谷歌做 X
- 其他雅虎做Y
这很容易说 Java Selenium,只需使用 if 语句循环,然后启动停止浏览器,给定 puppeteer 异步运行我如何使用 Javascript 实现这一点?还使用 Jest。
我尝试使 foreach 循环异步以能够运行 await,但明显的问题是它一次启动所有浏览器。
想避免 .then 为 puppeteer 提供承诺链。
describe('Sample Test', () => {
let browser
let page
beforeAll(async () => {
browser = await puppeteer.launch()
page = await browser.newPage()
})
afterAll(async () => {
await browser.close()
})
it('should search on google and navigate to domain', async () => {
jest.setTimeout(500000)
let numOfTotalVists = await helpers.getTotalVisits()
numOfTotalVists.forEach(element => {
if (element.includes('Google')) {
browser = puppeteer.launch()
page =browser.newPage()
browser.close()
}
console.log('no')
browser = puppeteer.launch()
page = browser.newPage()
browser.close()
})
解决方案
想通了容易的brainfart切换到一个简单的for循环
for (let i = 0; i < numOfTotalVists.length; i++) {
}
推荐阅读
- oracle - How can I convert an integer variable in PLSQL to pass to a boolean procedure parameter?
- laravel - 如何在不使用 foreach 命令的情况下获得 laravel join 方法?
- java - Scala - 如何将 LocalDateTime 转换为无 GMT 后缀格式的 ZonedDateTime?
- ruby-on-rails - Rails/Postgres:在数据库中保存 1000 种加密货币历史价格的策略
- c# - Visual Studio 不会将 Unity 项目的二进制文件放入输出文件夹
- python - 通过 SQL Server pyodbc 连接连接到链接服务器?
- spring-boot - Spring Data JPA:使用@Query 中的属性作为参数
- c# - EF Core 3.0 DbFunctionBuilder HasTranslation 只接受 SqlExpression 而不是 Expression
- python - 有没有办法让python读取我的shell中打印的内容并显示从我阅读的地方打印回来的内容
- c++ - wcout 不会打印右单引号