0%

playwright 使用

  • 电脑 Mac M1
  • 编辑器Vscode
  • python 3.8.12

安装

  1. 新建项目文件夹

    mkdir playwright-python

    cd playwirght-python

  2. 新建虚拟环境

    python -m venv pw-venv

  3. 激活虚拟环境

    source pw-venv/bin/activate

  4. 安装playwright

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest-playwright

  5. 安装浏览器

    playwright install

运行第一个文件

根目录新建文件test_example.py(需要test_开头,因为运行pytest命令时,会自动执行test_开头的文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import re
from playwright.sync_api import Page, expect

def test_has_title(page: Page):
page.goto("https://playwright.dev/")

# Expect a title "to contain" a substring.
expect(page).to_have_title(re.compile("Playwright"))

def test_get_started_link(page: Page):
page.goto("https://playwright.dev/")

# Click the get started link.
page.get_by_role("link", name="Get started").click()

# Expects page to have a heading with the name of Installation.
expect(page.get_by_role("heading", name="Installation")).to_be_visible()

在终端上运行pytest,此语句会执行test文件

Webpack

静态模块化打包工具

打包流程

  1. 根据命令或配置文件找到入口文件
  2. 从入口开始,生成一个依赖关系图,此依赖关系图包含程序所需的所有模块
  3. 根据依赖关系图,遍历图结构,打包一个个模块
  • 入口
  • 出口
  • loader
  • plugin
Read more »

安装

  1. 脚手架
    • npm install -g express-generator
    • express express-demo
    • npm install
    • node bin/www
  2. 从零搭建
    • npm init -y
    • npm install express
Read more »

path

获取路径信息

  • path.dirname():获取文件的父文件夹
  • path.basename():获取文件名;
  • path.extname():获取文件扩展名
  • __dirname:获取父文件夹路径
Read more »

包管理工具npm

  • 发布自己的包其实是发布到registry上面的
  • 安装一个包时其实是从registry上面下载的包;
Read more »

CommonJs

导出

  • exports
  • module.exports
    • 但是为了实现模块的导出,Node中使用的是Module的类,每一个模块都是Module的一个实例,也就是 module
    • 所以在Node中真正用于导出的其实根本不是exports,而是module.exports
    • 本质上,这两个导出是一样的
Read more »

事件循环理解成我们编写的JavaScript和浏览器或者Node之间的一个桥梁

  • 浏览器的事件循环是一个我们编写的JavaScript代码和浏览器API调用(setTimeout/AJAX/监听事件等)的一个桥梁,桥梁之间他们通过回调函数进行沟通
  • Node的事件循环是一个我们编写的JavaScript代码和系统调用(filesystem、network等)之间的一个桥梁,桥梁之间他们通过回调函数进行沟通的.

JavaScript的代码执行是在一个单独的线程中执行

Read more »

关于this

使用this的原因:this提供了一种更优雅的方式来隐式“传递”一个对象引用,因此可以将API设计得更加简洁并且易于复用

  • this实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用
  • 当一个函数被调用时,会创建一个活动记录(有时候也称为执行上下文)。这个记录会包含函数在哪里被调用(调用栈)、函数的调用方法、传入的参数等信息。this就是记录的其中一个属性,会在函数执行的过程中用到。
Read more »

鼠标事件

  • mousedown/moseup
    • 点击/释放
  • mouseover/mouseout
    • 移入/移出
  • mousemove
    • 鼠标移动
  • click
  • dbclick
    • 双击
  • contextmenu
    • 右键触发
Read more »