重要:因为同步公号的文章格式很难保证,所以后面文章选择性在其他平台同步,欢迎移步公众号(Python之战),每日更新原汁原味!
Page类是pyppeteer的核心,其价值就犹如selenium的driver,具体的页面操作都在Page类上;Page与driver比较最具优势的是和js的交互,可以修改本地js、css,也可以给页面添加js函数,甚至添加自定义函数到浏览器的windows属性中,也有js拦截相关的设置,更有终端模拟设置,这些功能是比driver更为强大的功能,但是也有一些劣势如页面超时方面比driver弱、选择器不简洁等问题。
页面类:Page 基类:pyee.EventEmitter
此类提供了与单个chrome选项卡进行交互的方法。一个 Browser对象可能有多个Page对象。
选择器
Page类选择器相关方法有5个,并且这五个都有别名,分别是:
J()别名querySelector()
JJ()别名querySelectorAll()
JJeval()别名querySelectorAllEval()
Jeval()别名querySelectorEval()
Jx()别名xpath()
协程函数 querySelector(selector:str)
获取匹配的元素的selector
参数:搜索元素的选择器字符串。
返回[ElementHandle]或者None。
协程函数 querySelectorAll(selector:str)
获取匹配的所有元素selector作为列表。
参数:搜索元素的选择器
返回列表或返回空列表。
协程函数 querySelectorAllEval(selector:str,pageFunction:str,*args)
对所有匹配元素执行js
参数:
selector(str)-选择器。
pageFunction(str)-要在浏览器上运行的JavaScript函数的字符串,此函数将匹配元素的数组作为第一个参数。
args(Any)-传递给pageFunction的其他参数。
协程函数 querySelectorEval(selector:str,pageFunction:str,*args)
对匹配的元素执行js函数
参数:
selector(str)-定位的选择器字符串。
pageFunction(str)-要在浏览器上计算的JavaScript函数的字符串,此函数采用与选择器匹配的元素作为第一个参数。
args(Any)-传递给pageFunction的参数。
如果没有元素匹配,则此方法会引发错误selector
协程函数 addScriptTag(options: Dict[KT, VT] = None,**kwargs)
将脚本标记添加到此页面
其中需要一个必须参数url,path或content
url (字符串):要添加的脚本的URL。
path (字符串):要添加的本地JavaScript文件的路径。
content (字符串):要添加的JavaScript字符串。
type(字符串):脚本类型,使用module以加载一个JavaScript ES6模块。
返回ElementHandle对象
协程函数 addStyleTag(options: Dict[KT, VT] = None, **kwargs)
将样式或链接标记添加到此页面
需要一个必须参数url,path或content
url (字符串):要添加的链接标记的URL。
path (字符串):要添加的本地CSS文件的路径。
content (字符串):要添加的CSS字符串。
返回添加标签后的ElementHandle
协程函数 authenticate(credentials: Dict[str, str])
提供http身份验证的凭据
credentials为None或dict含有有username和 password的字段字典
协程函数 bringToFront()
将页面置于前面(激活选项卡)
browser
获取该页面所属的浏览器对象
协程函数 click(selector: str, options: dict = None, **kwargs)
单击匹配selector的元素
将先获取selector元素,在视图底部,将滚动到视图中,然后使用mouse单击元素的中心,如果没有匹配selector,则该方法会引发 PageError
可用选项包括:
button(STR):,left,right或middle,默认为 left。
clickCount (int):默认为1。
delay(int | float):等待时间