首页 > python学习 > playwright同步模块sync_api创建页面
2021
01-04

playwright同步模块sync_api创建页面

在上下文中创建一个页面(标签页)

page=context.new_page()

页面的方法和属性

page页面支持的事件

"close"、"console"(js调用控制台api时)、"crash"(页面崩溃时)、"dialog"(当出现对话框时,默认关闭所有对话框)、"domcontentloaded"、"download"(下载开始时)、"filechooser"(文件选择器出现时)、"frameattached"(加入框架时)、"framedetached"(卸载框架时)、"framenavigated"(将框架导航至新url时)、"load"(页面加载完成)、"pageerror"(页面发生未捕获的异常时)、"popup"(打开新选项卡或窗口时)、"request"(页面发出请求时)、"requestfailed"(请求失败时)、"requestfinished"(下载响应正文后请求成功完成时)、"response"(收到请求的响应状态和标头时)、"websocket"(发送WebSocket请求时)、"worker"(生成专用WebWorker时)

page的属性:
keyboard:页面键盘对象
mouse:页面鼠标对象
context:获取页面所属的浏览器上下文
frames:获取页面中所有框架列表
main_frame:获取页面主框架
url:页面的url
video:与此页面关联的视频对象
requests:请求api

add_init_script(**,path,script):在创建文档之后,但在运行其任何脚本之前运行指定javascript脚本
add_script_tag(**,content,path,style,url):将content指定的js代码和path指定的js文件注入到url指定的框架中,style为"module"表示是ES6
add_style_tag(**,content,path,url):注入指定的css样式
bring_to_front():将页面置于最前面(激活选项卡)

check(selector,**,force,no_wait_after,position,timeout):查找并选定找到的单选或复选框
uncheck(selector,**,force,no_wait_after,position,timeout):查找并取消选定找到的单选或复选框
click(selector,**,button,click_count,delay,force,modifiers,position,timeout,no_wait_after)
dblclick(selector**,button,delay,force,modifiers,position,timeout,no_wait_after)
    selector:str,用于查找元素的css选择器语法,支持伪类,如果找到多个元素将使用第一个
    modifiers:list(None),在操作过程中保持按下的按键,list中支持的元素'Alt', 'Control', 'Meta', 'Shift'
    position:tuple,指定相对于元素左上角的坐标作为点击位置,未指定则使用元素的某个可见点
    delay:int,鼠标按下松开的间隔时间(毫秒)
    button:str,按下鼠标的哪个键,支持'left', 'middle', 'right'
    click_count:int(1),点击的次数
    timeout:int(30000),完成操作的超时时间,如果没有找到指定元素会等待直到查找到该元素
    force:bool(False),是否绕过可操作性检查
    no_wait_after:bool(False),是否不等待页面加载
    strict:bool,如果为true,则要求选择器解析为单个元素。如果选择器解析为多个元素,则将引发异常
close(run_before_unload):关闭页面,run_before_unload表示是否运行卸载前页面处理程序,默认False
content():获取页面的完整HTML内容,包括doctype
dispatch_event(selector,event,**,timeout):运行指定元素的指定事件(无论该元素是否可见)
drag_and_drop(source, target, **kwargs):元素拖放操作
    source :str
    target :str
    force :bool(Fasle),是否绕过可操作性检查
    no_wait_after :bool(Fasle),是否跳过等待加载内容
    source_position :dict,启示元素的点击位置{x:float;y:float}
    target_position :dict,终止元素的点击位置{x:float;y:float}
    timeout :float(30000),超时时间(毫秒)
eval_on_selector(selector,expression,arg)
    expression:str,看起来函数则被解释为一个函数(第一个参数为选择的元素),否则,解释为表达式
    arg为传给函数的其他参数
    如果expression返回一个Promise,将等待该Promise解决并返回其值
eval_on_selector_all(selector,expression,arg)
    在页面中找到匹配的所有元素(数组),并将数组作为第一个参数传递给函数
evaluate(expression,arg):运行expression字符串解析的js代码
expect_event(event:str,** , predicate:func=None,timeout:float=30000.0)
    等待指定的事件发生并执行predicate指定的方法,func方法接受指定的事件数据
    该方法返回一个上下文管理器
expect_navigation(**,timeout,wait_until):等待主框架加载完毕后返回相应资源
    wait_until:指定加载完成的标志
        'domcontentloaded':触发DOMContentLoaded事件时
        'load':触发load事件时,默认为load
        'networkidle':至少500毫秒没有网络连接时
        'commit':当收到网络响应并开始加载文档时
expose_binding(name, callback, **,handle:bool):绑定一个函数到页面中
    name:绑定的函数名称
    callback:绑定要执行的函数执行,该函数接受一个包含当前页面所有信息的对象
    handle :是否将参数作为句柄传递,而不是按值传递。传递句柄时,仅支持一个参数。按值传递时,支持多个参数
expose_function(name:str,callback:func):功能同上,不同的是该方法不会自动传递参数
fill(selector,value,**kwargs):
    执行一系列操作:查找指定元素,可操作性检查,对元素进行聚焦,填充指定内容
    查找到的元素只能为input,textarea或者设置了contenteditable属性的元素,否则报错
    kwargs可选参数:force、timeout、no_wait_after
focus(selector,**,timeout):查找指定元素并对其进行聚焦
page.frame(**,name,url):查找并返回页面中指定的框架
    name为框架的name属性值
    url可以使用glob模式字符串或正则对象
get_attribute(selector,name,**,timeout):获取元素的name属性值
go_back(**,timeout,wait_until):在历史记录中后退一步
go_forward(timeout,wait_until):在历史记录中前进一步
goto(url,**,timeout,wait_until,referer):访问指定网址
hover(selector,**,modifiers,position,timeout,force):查找某个元素并将光标移动到元素上
inner_html(selector,**,timeout):返回指定元素的element.innerHTML
inner_text(selector,**,timeout):返回指定元素的element.innerText
input_value(selector,**,timeout):返回指定的input、textarea或select元素的value值
is_checked(selector,**,timeout):检查元素是否是复选或单选
is_disabled(selector,**,timeout):检查元素是否被禁用
is_editable(selector,**,timeout):检查元素是否可编辑
is_enabled(selector,**,timeout):检查元素是否已启用
is_hidden(selector,**,timeout):检查元素是否不可见
is_visible(selector,**,timeout):检查元素是否可见
is_enabled(selector,**,timeout):检查元素是否已启用
is_enabled(selector,**,timeout):检查元素是否已启用
is_closed():检测页面是否已关闭
locator(selector):返回指定的元素
opener():返回父页面,如果已关闭或不存在返回null
pause():暂停脚本的执行
pdf(**kwargs):将页面保存为pdf文件
    display_header_footer:bool(False),是否显示页眉和页脚
    height、width:str|float,纸张高度和宽度
        可以接受含单位的字符串,接受的单位px(像素)、in(英寸)、cm(厘米)、mm(毫米)
        float单位为像素
    landscape:bool(False),是否宽版显示
    margin:dict,内边距,可用top、right、bottom和left四个字段,值为float或str
    page_ranges:str,打印范围,如"2-4,7,9-11",默认空字符串,表示打印所有页面
    path:str,pdf的保存路径
    scale:float,页面的显示大小,接受0.1-2的浮点数
press(selector, key, **,delay,no_wait_after,timeout):聚焦到指定的元素,按下指定按键并松开
    delay:float(0.0),按下和松开的时间间隔(毫秒)
    key:str,可用的值有:F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp, Shift, Control, Alt, Meta, ShiftLeft
    可以使用组合,如"Control+o"或"Control+Shift+T",使用组合是的字母直接使用字符
query_selector(selector):在页面中查找第一个匹配的元素并返回该元素、返回ElementHandle
query_selector_all(selector):在页面中查找所有匹配的元素并返回列表
reload(**,timeout,wait_until):重新加载页面
screenshot(**,clip,full_page,omit_background,path,quality,timeout,type):屏幕截图
    clip:dict,指定截取的区域,可用的字段
        x,y:float,截取的开始坐标
        width,height:float,截取区域的宽度和高度
    full_page:bool(False),是否截取包含滚动的全部页面内容,默认只截取可见区域
    omit_background:bool(False),背景是否透明
    quality:int,保存图片0-100的质量,仅适用于jpeg格式
    type:str("jpeg"),指定图片类型,可选"jpeg"或"png"
set_checked(selector, checked, **kwargs):选择单选或复选进行操作
    checked:bool,该元素是选中状态还是未选中状态
    force:bool(False),是够绕过可操作性检查
    position:dict,要点击的相对于元素左上角的坐标(float的字段x和y)
    no_wait_after、timeout
uncheck(selector, **kwargs):将指定的单选或多选设为未选中状态,可选参数force、position、no_wait_after、timeout
set_content(html,**,timeout,wait_until):使用指定的html代码字符串填充该页面
set_default_navigation_timeout(timeout):设定默认的页面加载超时时间
set_default_timeout(timeout):设定默认的超时时间
set_extra_http_headers(dict):页面发起的每个请求都会发送额外的HTTP标头
set_input_files(selector, files, **kwargs)
    选中指定的input元素并输入指定的文件的路径
    files:str、[str]list或dict,dict的可用字段
        name :str,文件名
        mimeType :str,文件类型
        buffer :bytes,文件的内容
set_viewport_size(dict):设置页面的视图大小,int类型的width和height字段,单位为像素
text_content(selector,**,timeout):返回element.textContent
title():返回页面title
type(selector, text, **,delay,no_wait_after,timeout):聚焦到指定的元素,并未text中的每个字符发送keydown和keypress事件
viewport_size():页面窗口的大小
wait_for_event(event,**,predicate,timeout)
    等待事件event触发,并将其值传递给predicate函数
    同时会传给page.on(event)
wait_for_function(expression,**,arg,polling,timeout):持续的运行expression表达式
    polling:float,运行表达式的时间间隔(毫秒)
wait_for_load_state(**,state,timeout):等待直到指定的页面加载状态
    state:str("load"):可选值'load'、'domcontentloaded'、'networkidle'(至少500毫秒没有网络连接)
wait_for_selector(selector,**,state,timeout):等待指定的元素满足条件时返回改元素
    state:str("visible"),可用的值
        'attached':等待元素出现在DOM中
        'detached':等待元素不存在于DOM中
        'visible':等待元素具有非空边界框并且没有隐藏。没有任何内容和边界也被视为隐藏
        'hidden':等待元素从DOM分离,或具有空边界框或隐藏
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。