前两天接到了一个爬取网站的需求,而且刚好听说微软出了一个自动化的框架playwright,就尝试一下。
安装
官网
python版官网
目前playwright支持用node和python两种编程语言,之后也会做java和c#的实现。
复制代码
1
2
3
4
5# 安装playwright pip install playwright # 安装需要的浏览器驱动,支持chrome,firefox和webkit三种浏览器驱动 python -m playwright install
使用
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42# 演示程序爬取一个网页中表格的全部数据 # 使用同步的API from playwright.sync_api import sync_playwright # 用作类型标注,方便IDE提示 from typing import List from playwright.sync_api import Browser, Page # 获取表格中的数据 def extract_table_data(page: Page) -> "List[str]": temp = [] # 选用所有符合条件的元素 for cell in page.query_selector_all("#foreach td"): # element.textContent函数,获得元素内的文字 temp.append(cell.text_content().strip()) for i in range(9): for cell in page.query_selector_all(f"#foreach_{i} td"): temp.append(cell.text_content().strip()) return temp # 表格有三列,需要把一个列表拆分成三个 def split_lines(origin_list: list, list_len: int) -> List: return [origin_list[i:i + list_len] for i in range(0, len(origin_list), list_len)] def main(): with sync_playwright() as playwright: # 创建浏览器,使用chrome浏览器,无头模式 browser: Browser = playwright.chromium.launch(headless=True) # 创建新页面 page: Page = browser.new_page() page.goto( "http://femhzs.mofcom.gov.cn/fecpmvc/pages/fem/CorpJWList.html") # 等待加载完毕,之后截个图 page.wait_for_load_state("networkidle") page.screenshot(path="./screenshot.jpg", type="jpeg") # 抽取数据并输出到控制台上 table = extract_table_data(page) line: List[str] for line in split_lines(table, 3): print(line[0] + "-" + line[1] + "-" + line[2]) # 关闭浏览器 browser.close() if __name__ == "__main__": main()
其他功能
选择器
支持文字搜索,css选择器,xpath等各种选择器。详细说明在官方文档
page.query_selector(selector)
接受一个选择器作为参数,返回一个元素,元素可以进行click,fill等操作
page.query_selectorAll(selector)
同样接受一个选择器,返回符合条件的元素列表
page.fill(selector, text)
选择符合条件的第一个元素,输入文字
page.click(selector) / page.dblclick(selector)
按下/双击符合条件的第一个元素
录制脚本
复制代码
1
2
3# 访问维基百科然后录制脚本 playwright codegen wikipedia.org
备注
2021-10-09 Playwright API发生变动,原来camelcase风格的方法变成了python风格snake_case风格
最后
以上就是谨慎香菇最近收集整理的关于python自动化测试之Playwright使用的全部内容,更多相关python自动化测试之Playwright使用内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复