puppeteer|自动化UI测试|JS|零基础入门(三)——异步操作与promise、async、await

news/2024/7/19 13:32:19 标签: 软件测试, ui, js, chrome devtools

puppeteer——异步操作、promise、async、await

  • 异步操作
  • promise
  • async与await


内容硬核,个人理解!
前面的代码中,开头都是以async、await开头,并且有看到promise类型的返回值,今天撸顺它,看看到底是怎么个事儿。


异步操作

个人理解——先后的,顺序的执行一系列操作,且每次只执行一个

为什么会这样呢?
主要因为JS脚本是单线程的——这里的单线程并非指只有一个,JS引擎是有多个线程的,但单个JS脚本只能在一个线程上运行。

希望了解更多的小伙伴,推荐去阮一峰老师那里了解更多有关异步操作方面的知识,里面讲的很详细。


promise

promise是异步操作的一种解决方案,比起传统的回调函数与事件更加合理,在ES6将其写入了语言标准并统一了用法。

个人理解——
1、保存一个事件的对象,且事件通常是一个异步操作,比如点击、输入等

2、状态只有进行中、已完成、已失败三种,异步操作嘛,你要么就是在做了,要么就是做完了结果成了还是没成。
PS:这个状态是不受外界影响的,事件是怎么样就怎么样

3、状态变了就不会变回去,点击完了的事件是不会返回没点击过的状态的
要么就是从
进行中→已完成
要么就是从
进行中→已失败
事件本身是一直向前执行的,所谓覆水难收、破镜重圆嘛。

同样希望了解更多深入学习的小伙伴,阮一峰老师的ECMAScript 6 入门讲的非常清楚!


async与await

异步操作终极解决方案——async!
关于这个,我喜欢直接放阮一峰老师书的截图:
《深入掌握 ECMAScript 6 异步编程》系列文章的最后一篇
清晰明了,如何用,怎么用,用来干什么,一个例子就清清楚楚了,简直强迫症福音!
至于更多的使用方法、注意点等,可以前往阮一峰老师的博客看!→链接


到此为止有关异步操作基本可以理解、使用了

记录学习、爬坑经验
0年经验小白,欢迎大佬指点!
希望可以帮到你!


http://www.niftyadmin.cn/n/1356693.html

相关文章

NYOJ-分数拆分

分数拆分 时间限制:3000 ms | 内存限制:65535 KB难度:1描述现在输入一个正整数k,找到所有的正整数x>y,使得1/k1/x1/y. 输入第一行输入一个整数n,代表有n组测试数据。接下来n行每行输入一个正整数k输出按顺序输出对应每行的k找到所有满足…

puppeteer|自动化UI测试|JS|零基础入门(四)——页面截图、元素截图

话不多说,看代码 //登陆页面截图,保存在ScreenShot文件夹,并命名为login_page.pngawait page.screenshot({path:login_page.png}) //登陆按钮截图,保存在ScreenShot文件夹,并命名为login_button.pngawait login_btn.…

NYOJ-小明的调查作业

小明的调查作业 时间限制:1000 ms | 内存限制:65535 KB难度:1描述小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了实验的客观性,想利用自己的计算机知识帮助自…

puppeteer|自动化UI测试|JS|零基础入门(五)——frame、iframe

话不多说,看代码 //用frames函数取出页面所有iframeconst frames await page.frames();//使用循环取出iframefor (var i of frames) { //使用url()函数得到里面的url标题进行对比if (i.url().includes(frame_url)){const frame i;} };await frame.waitForSelector…

NYOJ-另一种阶乘问题

另一种阶乘问题 时间限制:3000 ms | 内存限制:65535 KB难度:1描述大家都知道阶乘这个概念,举个简单的例子:5!1*2*3*4*5.现在我们引入一种新的阶乘概念,将原来的每个数相乘变为i不大于n的所有奇…

NYOJ-众数问题

众数问题 时间限制:3000 ms | 内存限制:65535 KB难度:3描述所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的成为该元素的重数, 多重集合S重的重数最大的元素成为众数。例如&a…

puppeteer|自动化UI测试|JS|零基础入门(六)——等待waitFor

话不多说,上代码 //等待登陆按钮selector出现在页面中await page.waitForSelector(SELECTOR.LOGIN_BTN)//页面等待3秒await page.waitForTimeout(3000)//等待登录按钮XPath出现在页面中await page.waitForXPath(XPATH.LOGIN_BTN)await page.goto(url)//等待页面加载…

NYOJ-cigarettes

cigarettes 时间限制:3000 ms | 内存限制:65535 KB难度:2描述Tom has many cigarettes. We hypothesized that he has n cigarettes and smokes them one by one keeping all the butts. Out of k > 1 butts he can roll a new cigarett…