public abstract class Page extends EventEmitter<PageEvents>
| 限定符和类型 | 字段和说明 |
|---|---|
TimeoutSettings |
_timeoutSettings |
protected List<String> |
inflight |
protected boolean |
isDragging |
protected static org.slf4j.Logger |
LOGGER |
protected Map<Consumer<Request>,Consumer<Request>> |
requestHandlers |
| 构造器和说明 |
|---|
Page() |
| 限定符和类型 | 方法和说明 | ||
|---|---|---|---|
protected abstract String |
_screenshot(ScreenshotOptions options) |
||
ElementHandle |
$(String selector)
此方法在页面内执行 document.querySelector
查找与选择器匹配的第一个元素,如果没有元素匹配指定选择器,返回值是 null。
|
||
List<ElementHandle> |
$$(String selector)
此方法在页面内执行 document.querySelectorAll。
|
||
Object |
$$eval(String selector,
String pptrFunction)
此方法在页面内执行 Array.from(document.querySelectorAll(selector)),然后把匹配到的元素数组作为第一个参数传给 pptrFunction。
|
||
Object |
$$eval(String selector,
String pptrFunction,
List<Object> args)
此方法在页面内执行 Array.from(document.querySelectorAll(selector)),然后把匹配到的元素数组作为第一个参数传给 pptrFunction。
|
||
Object |
$eval(String selector,
String pptrFunction)
此方法在页面内执行 document.querySelector,然后把匹配到的元素作为第一个参数传给 pptrFunction。
|
||
Object |
$eval(String selector,
String pptrFunction,
List<Object> args)
此方法在页面内执行 document.querySelector,然后把匹配到的元素作为第一个参数传给 pptrFunction。
|
||
abstract Accessibility |
accessibility() |
||
ElementHandle |
addScriptTag(FrameAddScriptTagOptions options)
在当前文档的主要框架中添加脚本标签
此方法封装了在当前文档的主要框架中添加一个脚本标签的操作它委托
Frame.addScriptTag(FrameAddScriptTagOptions) 方法来执行实际的操作 |
||
ElementHandle |
addStyleTag(FrameAddStyleTagOptions options)
将 link rel="stylesheet" 标记添加到具有所需 URL 的页面中,或将 style type="text/css" 标记添加到内容中。
|
||
abstract void |
authenticate(Credentials credentials)
为HTTP authentication 提供认证凭据 。
|
||
abstract void |
bringToFront()
相当于多个tab时,切换到某个tab。
|
||
abstract Browser |
browser()
返回页面隶属的浏览器
|
||
abstract BrowserContext |
browserContext()
获取页面所属的浏览器上下文。
|
||
void |
click(String selector)
此方法找到一个匹配 selector 选择器的元素,如果需要会把此元素滚动到可视,然后通过 page.mouse 点击它。
|
||
void |
click(String selector,
ClickOptions options) |
||
void |
close()
page.close() 在 beforeunload 处理之前默认不执行
注意 如果 runBeforeUnload 设置为true,可能会弹出一个 beforeunload 对话框。
|
||
abstract void |
close(boolean runBeforeUnload) |
||
String |
content()
获取当前页面的内容
此方法通过调用 mainFrame 的 content 方法来实现
它封装了 mainFrame 的内容获取逻辑,以便在需要时统一处理可能的变化
|
||
protected Double |
convertPrintParameterToInches(String parameter,
LengthUnit lengthUnit) |
||
List<Cookie> |
cookies()
返回当前页面的cookies
|
||
abstract List<Cookie> |
cookies(String... urls)
根据提供的URL列表获取Cookies
如果未指定 URL,则此方法返回当前页面 URL 的 cookie。
|
||
abstract Coverage |
coverage() |
||
abstract CDPSession |
createCDPSession()
创建附加到页面的 Chrome Devtools 协议会话。
|
||
abstract void |
deleteCookie(DeleteCookiesRequest... cookies)
删除指定的cookies
|
||
void |
deleteCookie(String... names)
删除指定名称的cookies
本方法接收一个或多个cookie名称,并创建对应的DeleteCookiesRequest对象列表,
然后调用deleteCookie方法删除这些cookies
|
||
void |
emulate(Device device)
模拟各种设备打开浏览器
所有录制内容均为 WebM 格式,使用 VP9 视频编解码器。
|
||
abstract void |
emulateCPUThrottling(double factor)
启用 CPU 限制以模拟慢速 CPU。
|
||
abstract void |
emulateIdleState(IdleOverridesState.Overrides overrides)
模拟空闲状态。
|
||
abstract void |
emulateMediaFeatures(List<MediaFeature> features)
模拟媒体特征
|
||
abstract void |
emulateMediaType(MediaType type)
改变页面的css媒体类型。
|
||
abstract void |
emulateNetworkConditions(NetworkConditions networkConditions)
模拟网络条件
这不会影响 WebSocket 和 WebRTC PeerConnections(请参阅这里 )。
|
||
abstract void |
emulateTimezone(String timezoneId)
更改页面的时区,传null将禁用将时区仿真
abstract voidemulateVisionDeficiency(VisionDeficiency type)
模拟页面上给定的视力障碍,不同视力障碍,截图有不同效果
| ||
Object |
evaluate(String pptrFunction,
Object... args)
执行一段 JavaScript代码
|
||
JSHandle |
evaluateHandle(String pptrFunction)
page.evaluate 和 page.evaluateHandle 之间的唯一区别是 evaluateHandle 将返回封装在页内对象中的值
JSHandle。 |
||
JSHandle |
evaluateHandle(String pptrFunction,
List<Object> args)
此方法和 page.evaluate 的唯一区别是此方法返回的是页内类型(JSHandle)
|
||
abstract NewDocumentScriptEvaluation |
evaluateOnNewDocument(String pptrFunction,
EvaluateType type,
Object... args)
在新dom产生之际执行给定的javascript
当你的js代码为函数时,type=
EvaluateType.FUNCTION
当你的js代码为字符串时,type=EvaluateType.STRING |
||
NewDocumentScriptEvaluation |
evaluateOnNewDocument(String pptrFunction,
Object... args)
在新dom产生之际执行给定的javascript
当你的js代码为函数时,type=
EvaluateType.FUNCTION
当你的js代码为字符串时,type=EvaluateType.STRING |
||
abstract void |
exposeFunction(String name,
BindingFunction pptrFunction)
该方法在页面的 window 对象上添加一个名为 name 的函数。
|
||
abstract AwaitableResult<FileChooser> |
fileChooserWaitFor()
创建并返回一个可等待的文件选择器结果
当需要拦截文件选择器对话框时,此方法将非常有用
|
||
void |
focus(String selector)
此方法找到一个匹配selector的元素,并且把焦点给它。
|
||
abstract <T extends Frame> |
frames()
附加到页面的所有框架的数组。
|
||
abstract int |
getDefaultNavigationTimeout() |
||
abstract int |
getDefaultTimeout() |
||
Response |
goBack()
此方法导航到历史记录中的上一页
|
||
abstract Response |
goBack(WaitForOptions options)
导航到页面历史的前一个页面
options 导航配置,可选值:
otimeout 跳转等待时间,单位是毫秒, 默认是30秒, 传 0 表示无限等待。
|
||
Response |
goForward() |
||
abstract Response |
goForward(WaitForOptions options)
导航到页面历史的后一个页面。
|
||
Response |
goTo(String url)
导航到某个网站
以下情况此方法将报错:
发生了 SSL 错误 (比如有些自签名的https证书).
|
||
Response |
goTo(String url,
GoToOptions options)
导航到指定的url
以下情况此方法将报错:
发生了 SSL 错误 (比如有些自签名的https证书).
|
||
void |
hover(String selector)
此方法找到一个匹配的元素,如果需要会把此元素滚动到可视,然后通过 page.mouse 来hover到元素的中间。
|
||
abstract boolean |
isClosed()
表示页面是否被关闭。
|
||
boolean |
isDragging() |
||
abstract boolean |
isDragInterceptionEnabled()
已过时。
|
||
abstract boolean |
isJavaScriptEnabled() |
||
abstract boolean |
isServiceWorkerBypassed() |
||
abstract Keyboard |
keyboard()
虚拟键盘
|
||
abstract Frame |
mainFrame()
页面的主框架。
|
||
abstract Metrics |
metrics()
获取性能指标
本方法通过向目标客户端发送“Performance.getMetrics”请求来获取当前的性能指标
接收到的响应将被转换成GetMetricsResponse对象,然后用于构建并返回一个Metrics对象
Metrics对象:
Timestamp :获取指标样本时的时间戳。
|
||
abstract Mouse |
mouse() |
||
protected ScreenshotClip |
normalizeRectangle(ScreenshotClip clip) |
||
void |
off(PageEvents type,
Consumer<?> handler)
取消监听
|
||
EventEmitter<PageEvents> |
on(PageEvents type,
Consumer<?> handler)
监听事件,可用于自定义事件监听,用户监听的事件都是在别的线程中异步执行的
|
||
byte[] |
pdf(PDFOptions options)
生成当前页面的pdf格式,带着 pring css media。
|
||
abstract byte[] |
pdf(PDFOptions options,
LengthUnit lengthUnit)
生成当前页面的pdf格式,带着 pring css media。
|
||
void |
pdf(String path)
生成当前页面的pdf格式,带着 pring css media。
|
||
abstract JSHandle |
queryObjects(JSHandle prototypeHandle)
此方法遍历js堆栈,找到所有带有指定原型的对象
|
||
Response |
reload()
重新加载页面
|
||
abstract Response |
reload(WaitForOptions options)
重新加载页面
|
||
abstract void |
removeExposedFunction(String name)
该方法从页面的 window 对象中删除先前通过 Page.exposeFunction() 添加的名为 name 的函数。
|
||
abstract void |
removeScriptToEvaluateOnNewDocument(String identifier)
删除通过 Page.evaluateOnNewDocument 注入页面的脚本。
|
||
protected ScreenshotClip |
roundRectangle(ScreenshotClip clip) |
||
ScreenRecorder |
screencast(ScreencastOptions options)
捕获此 page 的截屏视频。
|
||
String |
screenshot(ScreenshotOptions options)
截图
备注 在OS X上 截图需要至少1/6秒。
|
||
String |
screenshot(String path)
屏幕截图
|
||
List<String> |
select(String selector,
List<String> values)
当提供的选择器完成选中后,触发change和input事件 如果没有元素匹配指定选择器,将报错。
|
||
abstract void |
setBypassCSP(boolean enabled)
切换绕过页面的内容安全策略。
|
||
abstract void |
setBypassServiceWorker(boolean bypass)
切换忽略每个请求的 Service Worker。
|
||
abstract void |
setCacheEnabled(boolean enabled)
根据启用状态切换忽略每个请求的缓存。
|
||
void |
setContent(String html)
给页面设置html
|
||
void |
setContent(String html,
WaitForOptions options)
给页面设置html
|
||
abstract void |
setCookie(CookieParam... cookies) |
||
abstract void |
setDefaultNavigationTimeout(int timeout)
此方法会改变下面几个方法的默认30秒等待时间:
$
goTo(String)
$goTo(String, GoToOptions)
$goBack(WaitForOptions)
$goForward(WaitForOptions)
$reload(WaitForOptions)
$setContent(String)
$waitForNavigation() |
||
abstract void |
setDefaultTimeout(int timeout) |
||
void |
setDragging(boolean dragging) |
||
abstract void |
setDragInterception(boolean enabled)
已过时。
|
||
abstract void |
setExtraHTTPHeaders(Map<String,String> headers)
当前页面发起的每个请求都会带上这些请求头
注意 此方法不保证请求头的顺序
|
||
void |
setGeolocation(GeolocationOptions options)
设置页面的地理位置
考虑使用
BrowserContext.overridePermissions(String, WebPermission...) |
||
abstract void |
setJavaScriptEnabled(boolean enabled)
是否在页面上启用 JavaScript。
|
||
abstract void |
setOfflineMode(boolean enabled)
将网络连接设置为离线。
|
||
abstract void |
setRequestInterception(boolean value)
启用请求拦截器,会激活 request.abort, request.continue 和 request.respond 方法。
|
||
void |
setUserAgent(String userAgent)
给页面设置userAgent
|
||
abstract void |
setUserAgent(String userAgent,
UserAgentMetadata userAgentMetadata)
给页面设置userAgent
|
||
abstract void |
setViewport(Viewport viewport)
如果是一个浏览器多个页面的情况,每个页面都可以有单独的viewport
注意 在大部分情况下,改变 viewport 会重新加载页面以设置 isMobile 或者 hasTouch
|
||
void |
stopScreencast() |
||
void |
tap(String selector)
此方法找到一个匹配的元素,如果需要会把此元素滚动到视图中,然后通过 page.touchscreen 来点击元素的中间位置 如果没有匹配的元素,此方法会报错
|
||
abstract Target |
target()
创建此页面的目标。
|
||
String |
title()
获取当前主框架的标题
该方法通过调用主框架的title方法来获取页面标题如果在处理JSON数据时发生错误,该方法将抛出JsonProcessingException异常
|
||
abstract Touchscreen |
touchscreen()
触控屏幕
|
||
abstract Tracing |
tracing() |
||
void |
type(String selector,
String text)
每个字符输入后都会触发 keydown, keypress/input 和 keyup 事件
要点击特殊按键,比如 Control 或 ArrowDown,用 keyboard.press
|
||
void |
type(String selector,
String text,
long delay)
每个字符输入后都会触发 keydown, keypress/input 和 keyup 事件
要点击特殊按键,比如 Control 或 ArrowDown,用 keyboard.press
|
||
String |
url()
返回页面的地址
|
||
abstract Viewport |
viewport()
获取Viewport,Viewport各个参数的含义:
width 宽度,单位是像素
height 高度,单位是像素
deviceScaleFactor 定义设备缩放, (类似于 dpr)。
|
||
DeviceRequestPrompt |
waitForDevicePrompt()
此方法通常与从 API(例如 WebBluetooth)触发设备请求的操作结合使用。
|
||
DeviceRequestPrompt |
waitForDevicePrompt(int timeout)
此方法通常与从 API(例如 WebBluetooth)触发设备请求的操作结合使用。
|
||
Frame |
waitForFrame(Predicate<Frame> framePredicate)
等待匹配给定条件的帧出现。
|
||
Frame |
waitForFrame(String url)
等待匹配给定条件的帧出现。
|
||
Frame |
waitForFrame(String url,
Predicate<Frame> framePredicate,
int timeout)
等待匹配给定条件的帧出现。
|
||
JSHandle |
waitForFunction(String pptrFunction)
等待提供的函数 pptrFunction 在页面上下文中计算时返回真值。
|
||
JSHandle |
waitForFunction(String pptrFunction,
Object... args)
等待提供的函数 pptrFunction 在页面上下文中计算时返回真值。
|
||
JSHandle |
waitForFunction(String pptrFunction,
WaitForSelectorOptions options,
EvaluateType type,
Object... args)
等待提供的函数 pptrFunction 在页面上下文中计算时返回真值。
|
||
JSHandle |
waitForFunction(String pptrFunction,
WaitForSelectorOptions options,
Object... args)
等待提供的函数 pptrFunction 在页面上下文中计算时返回真值。
|
||
Response |
waitForNavigation()
此方法在页面跳转到一个新地址或重新加载时解析,如果你的代码会间接引起页面跳转,这个方法比较有用
比如你在在代码中使用了Page.click()方法,引起了页面跳转
注意 通过 History API 改变地址会认为是一次跳转。
|
||
Response |
waitForNavigation(WaitForOptions options)
此方法在页面跳转到一个新地址或重新加载时解析,如果你的代码会间接引起页面跳转,这个方法比较有用
比如你在在代码中使用了Page.click()方法,引起了页面跳转
注意 通过 History API 改变地址会认为是一次跳转。
|
||
Response |
waitForNavigation(WaitForOptions options,
Runnable navigateRunner)
此方法在页面跳转到一个新地址或重新加载时解析,如果你的代码会间接引起页面跳转,这个方法比较有用
比如你在在代码中使用了Page.click()方法,引起了页面跳转
注意 通过 History API 改变地址会认为是一次跳转。
|
||
void |
waitForNetworkIdle(WaitForNetworkIdleOptions options) |
||
Request |
waitForRequest(String url)
等到某个请求,url或者predicate只有有一个不为空,默认等待时间是30s
|
||
Request |
waitForRequest(String url,
Predicate<Request> predicate,
Integer timeout)
等到某个请求,url或者predicate只有有一个不为空
当url不为空时, type = PageEvaluateType.STRING
当predicate不为空时, type = PageEvaluateType.FUNCTION
|
||
Response |
waitForResponse(Predicate<Response> predicate)
等到某个请求,默认等待的时间是30s
|
||
Response |
waitForResponse(String url)
等到某个请求,默认等待的时间是30s
|
||
Response |
waitForResponse(String url,
Predicate<Response> predicate)
等到某个请求,url或者predicate只有有一个不为空,默认等待的时间是30s
当url不为空时, type = PageEvaluateType.STRING
当predicate不为空时, type = PageEvaluateType.FUNCTION
|
||
Response |
waitForResponse(String url,
Predicate<Response> predicate,
Integer timeout)
等到某个请求,url或者predicate只有有一个不为空
当url不为空时, type = PageEvaluateType.STRING
当predicate不为空时, type = PageEvaluateType.FUNCTION
|
||
ElementHandle |
waitForSelector(String selector)
等待指定的选择器匹配的元素出现在页面中,如果调用此方法时已经有匹配的元素,那么此方法立即返回。
|
||
ElementHandle |
waitForSelector(String selector,
WaitForSelectorOptions options)
等待指定的选择器匹配的元素出现在页面中,如果调用此方法时已经有匹配的元素,那么此方法立即返回。
|
||
abstract List<WebWorker> |
workers()
该方法返回所有与页面关联的 WebWorkers
|
disposeSymbol, emit, listenerCount, once, removeAllListeners, removeListenerprotected static final org.slf4j.Logger LOGGER
public final TimeoutSettings _timeoutSettings
protected boolean isDragging
public abstract boolean isServiceWorkerBypassed()
@Deprecated public abstract boolean isDragInterceptionEnabled()
public abstract boolean isJavaScriptEnabled()
public EventEmitter<PageEvents> on(PageEvents type, Consumer<?> handler)
EventEmitteron 在类中 EventEmitter<PageEvents>type - 事件类型handler - 事件的处理器public void off(PageEvents type, Consumer<?> handler)
EventEmitteroff 在类中 EventEmitter<PageEvents>type - 事件类型handler - 事件的处理器public abstract AwaitableResult<FileChooser> fileChooserWaitFor()
public void setGeolocation(GeolocationOptions options)
考虑使用 BrowserContext.overridePermissions(String, WebPermission...) 授予页面读取其地理位置的权限。
options - 地理位置具体信息public abstract Target target()
public abstract Browser browser()
public abstract BrowserContext browserContext()
public abstract Frame mainFrame()
public abstract CDPSession createCDPSession()
public abstract Keyboard keyboard()
public abstract Touchscreen touchscreen()
public abstract Coverage coverage()
public abstract Tracing tracing()
public abstract Accessibility accessibility()
public abstract void setRequestInterception(boolean value)
一旦启用请求拦截,每个请求都将停止,除非它继续,响应或中止
value - 是否启用请求拦截器public abstract void setBypassServiceWorker(boolean bypass)
bypass - 是否忽略@Deprecated public abstract void setDragInterception(boolean enabled)
enabled - 是否启用public abstract void setOfflineMode(boolean enabled)
它不会改变 Page.emulateNetworkConditions() 中使用的参数
enabled - 设置 true, 启用离线模式。public abstract void emulateNetworkConditions(NetworkConditions networkConditions)
这不会影响 WebSocket 和 WebRTC PeerConnections(请参阅这里 )。
要将页面设置为离线,你可以使用 Page.setOfflineMode()。
通过导入 PredefinedNetworkConditions 可以使用预定义网络条件列表。
networkConditions - 传递 null 将禁用网络条件模拟。public abstract void setDefaultNavigationTimeout(int timeout)
goTo(String)
$goTo(String, GoToOptions)
$goBack(WaitForOptions)
$goForward(WaitForOptions)
$reload(WaitForOptions)
$setContent(String)
$waitForNavigation()timeout - 超时时间public abstract void setDefaultTimeout(int timeout)
public abstract int getDefaultTimeout()
public abstract int getDefaultNavigationTimeout()
public ElementHandle $(String selector) throws com.fasterxml.jackson.core.JsonProcessingException
查找与选择器匹配的第一个元素,如果没有元素匹配指定选择器,返回值是 null。
selector - 要查询页面的 selector。CSS 选择器 可以按原样传递,Puppeteer 特定的选择器语法 允许通过 text、a11y 角色和名称、xpath 和 跨影子根组合这些查询 进行查询。或者,你可以使用前缀 prefix 指定选择器类型。com.fasterxml.jackson.core.JsonProcessingException - JSON异常public List<ElementHandle> $$(String selector) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 选择器com.fasterxml.jackson.core.JsonProcessingException - JSON异常public JSHandle evaluateHandle(String pptrFunction, List<Object> args) throws com.fasterxml.jackson.core.JsonProcessingException
pptrFunction - 要在页面实例上下文中执行的方法args - 要在页面实例上下文中执行的方法的参数com.fasterxml.jackson.core.JsonProcessingException - JSON异常public JSHandle evaluateHandle(String pptrFunction) throws com.fasterxml.jackson.core.JsonProcessingException
JSHandle。pptrFunction - 要执行的字符串com.fasterxml.jackson.core.JsonProcessingException - JSON异常public abstract JSHandle queryObjects(JSHandle prototypeHandle) throws com.fasterxml.jackson.core.JsonProcessingException
prototypeHandle - 原型处理器com.fasterxml.jackson.core.JsonProcessingException - Json解析异常public Object $eval(String selector, String pptrFunction, List<Object> args) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 选择器pptrFunction - 在浏览器实例上下文中要执行的方法args - 要传给 pptrFunction 的参数。(比如你的代码里生成了一个变量,在页面中执行方法时需要用到,可以通过这个 args 传进去)com.fasterxml.jackson.core.JsonProcessingException - JSON异常public Object $eval(String selector, String pptrFunction) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 选择器pptrFunction - 在浏览器实例上下文中要执行的方法com.fasterxml.jackson.core.JsonProcessingException - JSON异常public Object $$eval(String selector, String pptrFunction) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 一个框架选择器pptrFunction - 在浏览器实例上下文中要执行的方法com.fasterxml.jackson.core.JsonProcessingException - JSON异常public Object $$eval(String selector, String pptrFunction, List<Object> args) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 一个框架选择器pptrFunction - 在浏览器实例上下文中要执行的方法args - 要传给 pptrFunction 的参数。(比如你的代码里生成了一个变量,在页面中执行方法时需要用到,可以通过这个 args 传进去)com.fasterxml.jackson.core.JsonProcessingException - JSON异常public List<Cookie> cookies() throws com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.core.JsonProcessingException - 如果处理JSON时发生错误public abstract List<Cookie> cookies(String... urls)
如果未指定 URL,则此方法返回当前页面 URL 的 cookie。如果指定了 URL,则仅返回这些 URL 的 cookie。
urls - URL列表,如果没有提供或为null,将使用当前页面的URLpublic void deleteCookie(String... names)
本方法接收一个或多个cookie名称,并创建对应的DeleteCookiesRequest对象列表, 然后调用deleteCookie方法删除这些cookies
names - 需要删除的cookie名称列表public abstract void deleteCookie(DeleteCookiesRequest... cookies)
cookies - 待删除的cookies请求列表,每个元素包含待删除的cookie信息public abstract void setCookie(CookieParam... cookies)
public ElementHandle addScriptTag(FrameAddScriptTagOptions options) throws IOException
此方法封装了在当前文档的主要框架中添加一个脚本标签的操作它委托
Frame.addScriptTag(FrameAddScriptTagOptions) 方法来执行实际的操作
options - 脚本标签的配置选项,包含了脚本标签的各类属性如URL、位置等IOException - 当网络通信失败时抛出此异常public ElementHandle addStyleTag(FrameAddStyleTagOptions options) throws IOException
options - link标签IOException - 异常public abstract void exposeFunction(String name, BindingFunction pptrFunction) throws com.fasterxml.jackson.core.JsonProcessingException
调用时,该函数会执行 pptrFunction,结果是 pptrFunction 的返回值。
name - 窗口对象上的函数名称pptrFunction - 将在 Puppeteer 上下文中调用的回调函数。com.fasterxml.jackson.core.JsonProcessingException - 如果处理JSON时发生错误public abstract void removeExposedFunction(String name) throws com.fasterxml.jackson.core.JsonProcessingException
name - 要删除的函数名称com.fasterxml.jackson.core.JsonProcessingException - 如果处理JSON时发生错误public abstract void authenticate(Credentials credentials)
传 null 禁用认证。
将在后台打开请求拦截以实现身份验证。这可能会影响性能。
credentials - 验证信息public abstract void setExtraHTTPHeaders(Map<String,String> headers)
headers - 每个 HTTP 请求都会带上这些请求头。值必须是字符串public void setUserAgent(String userAgent)
userAgent - 此页面中使用的特定用户代理public abstract void setUserAgent(String userAgent, UserAgentMetadata userAgentMetadata)
userAgent - 此页面中使用的特定用户代理public abstract Metrics metrics() throws com.fasterxml.jackson.core.JsonProcessingException
本方法通过向目标客户端发送“Performance.getMetrics”请求来获取当前的性能指标
接收到的响应将被转换成GetMetricsResponse对象,然后用于构建并返回一个Metrics对象
Metrics对象:
Timestamp :获取指标样本时的时间戳。 Documents:页面中的文档数。 ¥Documents : Number of documents in the page. Frames:页面中的帧数。 JSEventListeners:页面中的事件数。 Nodes :页面中 DOM 节点的数量。 LayoutCount:完整或部分页面布局的总数。 RecalcStyleCount:页面样式重新计算的总数。 LayoutDuration:所有页面布局的总持续时间。 RecalcStyleDuration:所有页面样式重新计算的总持续时间。 ScriptDuration :JavaScript 执行的总持续时间。 TaskDuration :浏览器执行的所有任务的总持续时间。 JSHeapUsedSize:使用的 JavaScript 堆大小。 JSHeapTotalSize:JavaScript 堆总大小。
所有时间戳都是单调时间:自过去任意点以来单调增加的时间(以秒为单位)。
com.fasterxml.jackson.core.JsonProcessingException - 处理JSON时抛出异常public String url()
public String content() throws com.fasterxml.jackson.core.JsonProcessingException
此方法通过调用 mainFrame 的 content 方法来实现 它封装了 mainFrame 的内容获取逻辑,以便在需要时统一处理可能的变化
com.fasterxml.jackson.core.JsonProcessingException - 如果在处理 JSON 时发生错误public void setContent(String html) throws com.fasterxml.jackson.core.JsonProcessingException, InterruptedException, ExecutionException
html - 分派给页面的HTML。com.fasterxml.jackson.core.JsonProcessingException - 如果在处理 JSON 时发生错误InterruptedExceptionExecutionExceptionpublic void setContent(String html, WaitForOptions options) throws com.fasterxml.jackson.core.JsonProcessingException, InterruptedException, ExecutionException
html - 分派给页面的HTML。options - timeout 加载资源的超时时间,默认值为30秒,传入0禁用超时. 可以使用 page.setDefaultNavigationTimeout(timeout) 或者 page.setDefaultTimeout(timeout) 方法修改默认值
waitUntil HTML设置成功的标志事件, 默认为 load。 如果给定的是一个事件数组,那么当所有事件之后,给定的内容才被认为设置成功。 事件可以是:
load - load事件触发后,设置HTML内容完成。
domcontentloaded - DOMContentLoaded 事件触发后,设置HTML内容完成。
networkidle0 - 不再有网络连接时(至少500毫秒之后),设置HTML内容完成。
networkidle2 - 只剩2个网络连接时(至少500毫秒之后),设置HTML内容完成。
com.fasterxml.jackson.core.JsonProcessingException - JSON异常InterruptedExceptionExecutionExceptionpublic Response goTo(String url) throws ExecutionException, InterruptedException
以下情况此方法将报错:
发生了 SSL 错误 (比如有些自签名的https证书).
目标地址无效
超时
主页面不能加载
url - 导航到的地址. 地址应该带有http协议, 比如 https://.ExecutionExceptionInterruptedExceptionpublic Response goTo(String url, GoToOptions options) throws ExecutionException, InterruptedException
导航到指定的url
以下情况此方法将报错:
发生了 SSL 错误 (比如有些自签名的https证书).
目标地址无效
超时
主页面不能加载
url - urloptions - timeout 跳转等待时间,单位是毫秒, 默认是30秒, 传 0 表示无限等待。可以通过page.setDefaultNavigationTimeout(timeout)方法修改默认值
waitUntil 满足什么条件认为页面跳转完成,默认是 load 事件触发时。指定事件数组,那么所有事件触发后才认为是跳转完成。事件包括:
load - 页面的load事件触发时
domcontentloaded - 页面的 DOMContentLoaded 事件触发时
networkidle0 - 不再有网络连接时触发(至少500毫秒后)
networkidle2 - 只有2个网络连接时触发(至少500毫秒后)
referer Referer header value. If provided it will take preference over the referer header value set by page.setExtraHTTPHeaders().
ExecutionExceptionInterruptedExceptionpublic Response reload()
public abstract Response reload(WaitForOptions options)
options - 与$goTo(String, GoToOptions)中的options是一样的配置public Response waitForNavigation()
比如你在在代码中使用了Page.click()方法,引起了页面跳转 注意 通过 History API 改变地址会认为是一次跳转。
public Response waitForNavigation(WaitForOptions options, Runnable navigateRunner)
比如你在在代码中使用了Page.click()方法,引起了页面跳转 注意 通过 History API 改变地址会认为是一次跳转。
options - 可选的等待选项public Response waitForNavigation(WaitForOptions options)
比如你在在代码中使用了Page.click()方法,引起了页面跳转 注意 通过 History API 改变地址会认为是一次跳转。
options - 可选的等待选项public Request waitForRequest(String url)
url - 等待的请求public Request waitForRequest(String url, Predicate<Request> predicate, Integer timeout)
当url不为空时, type = PageEvaluateType.STRING
当predicate不为空时, type = PageEvaluateType.FUNCTION
url - 等待的请求predicate - 方法timeout - 超时时间public Response waitForResponse(Predicate<Response> predicate)
predicate - 判断具体某个请求public Response waitForResponse(String url)
url - 等待的请求public Response waitForResponse(String url, Predicate<Response> predicate)
当url不为空时, type = PageEvaluateType.STRING
当predicate不为空时, type = PageEvaluateType.FUNCTION
url - 等待的请求predicate - 方法public Response waitForResponse(String url, Predicate<Response> predicate, Integer timeout)
当url不为空时, type = PageEvaluateType.STRING
当predicate不为空时, type = PageEvaluateType.FUNCTION
url - 等待的请求predicate - 方法timeout - 超时时间,0 代表无限等待public void waitForNetworkIdle(WaitForNetworkIdleOptions options)
public Frame waitForFrame(String url)
默认超时时间是30s
url - 匹配帧的urlpublic Frame waitForFrame(Predicate<Frame> framePredicate)
默认超时时间是30s
framePredicate - 匹配的表达式public Frame waitForFrame(String url, Predicate<Frame> framePredicate, int timeout)
url - 等待的urlframePredicate - 匹配的规则timeout - 超时时间public Response goBack() throws com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.core.JsonProcessingExceptionpublic abstract Response goBack(WaitForOptions options) throws com.fasterxml.jackson.core.JsonProcessingException
options 导航配置,可选值:
otimeout 跳转等待时间,单位是毫秒, 默认是30秒, 传 0 表示无限等待。可以通过page.setDefaultNavigationTimeout(timeout)方法修改默认值
owaitUntil 满足什么条件认为页面跳转完成,默认是load事件触发时。指定事件数组,那么所有事件触发后才认为是跳转完成。事件包括:
oload - 页面的load事件触发时 odomcontentloaded - 页面的DOMContentLoaded事件触发时 onetworkidle0 - 不再有网络连接时触发(至少500毫秒后) onetworkidle2 - 只有2个网络连接时触发(至少500毫秒后)
options - 见上面注释com.fasterxml.jackson.core.JsonProcessingException - 如果JSON解析失败public Response goForward() throws com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.core.JsonProcessingExceptionpublic abstract Response goForward(WaitForOptions options) throws com.fasterxml.jackson.core.JsonProcessingException
otimeout 跳转等待时间,单位是毫秒, 默认是30秒, 传 0 表示无限等待。可以通过page.setDefaultNavigationTimeout(timeout)方法修改默认值
owaitUntil 满足什么条件认为页面跳转完成,默认是load事件触发时。指定事件数组,那么所有事件触发后才认为是跳转完成。事件包括:
oload - 页面的load事件触发时 odomcontentloaded - 页面的DOMContentLoaded事件触发时 onetworkidle0 - 不再有网络连接时触发(至少500毫秒后) onetworkidle2 - 只有2个网络连接时触发(至少500毫秒后)
options - 等待选项com.fasterxml.jackson.core.JsonProcessingExceptionpublic abstract void bringToFront()
public void emulate(Device device) throws ExecutionException, InterruptedException
所有录制内容均为 WebM 格式,使用 VP9 视频编解码器。FPS 为 30。
你的系统上必须安装有 ffmpeg。
device - 设备类型ExecutionExceptionInterruptedExceptionpublic abstract void setJavaScriptEnabled(boolean enabled)
enabled - 是否启用public abstract void setBypassCSP(boolean enabled)
注意:CSP 绕过发生在 CSP 初始化时而不是评估时。通常,这意味着应在导航到域之前调用 page.setBypassCSP。
enabled - 是否绕过public abstract void emulateMediaType(MediaType type)
type - css媒体类型public abstract void emulateCPUThrottling(double factor)
factor - 减速系数(1 表示无油门,2 表示 2 倍减速,等等)。public abstract void emulateMediaFeatures(List<MediaFeature> features)
features - 给定一组媒体特性对象,在页面上模拟 CSS 媒体特性,每个媒体特性对象的name必须符合正则表达式 :
^(?:prefers-(?:color-scheme|reduced-motion)|color-gamut)$"public abstract void emulateTimezone(String timezoneId)
timezoneId - 时区idpublic abstract void emulateIdleState(IdleOverridesState.Overrides overrides)
overrides - 模拟空闲状态。如果未设置,则清除空闲覆盖public abstract void emulateVisionDeficiency(VisionDeficiency type)
type - 视力障碍类型public abstract void setViewport(Viewport viewport) throws ExecutionException, InterruptedException
注意 在大部分情况下,改变 viewport 会重新加载页面以设置 isMobile 或者 hasTouch
viewport - 设置的视图ExecutionExceptionInterruptedExceptionpublic abstract Viewport viewport()
public Object evaluate(String pptrFunction, Object... args) throws com.fasterxml.jackson.core.JsonProcessingException
pptrFunction - 要执行的字符串args - 如果pageFunction 是 Javascript 函数的话,args就是函数上的参数com.fasterxml.jackson.core.JsonProcessingException - json序列化异常public NewDocumentScriptEvaluation evaluateOnNewDocument(String pptrFunction, Object... args) throws com.fasterxml.jackson.core.JsonProcessingException
当你的js代码为函数时,type=EvaluateType.FUNCTION
当你的js代码为字符串时,type=EvaluateType.STRING
pptrFunction - js代码args - 当你js代码是函数时,js函数的参数com.fasterxml.jackson.core.JsonProcessingExceptionpublic abstract NewDocumentScriptEvaluation evaluateOnNewDocument(String pptrFunction, EvaluateType type, Object... args) throws com.fasterxml.jackson.core.JsonProcessingException
当你的js代码为函数时,type=EvaluateType.FUNCTION
当你的js代码为字符串时,type=EvaluateType.STRING
pptrFunction - js代码type - 一般为PageEvaluateType#FUNCTIONargs - 当你js代码是函数时,js函数的参数com.fasterxml.jackson.core.JsonProcessingException - json异常public abstract void removeScriptToEvaluateOnNewDocument(String identifier)
identifier - 脚本标识符public abstract void setCacheEnabled(boolean enabled)
enabled - 设置缓存的 enabled 状态public ScreenRecorder screencast(ScreencastOptions options) throws IOException, ExecutionException, InterruptedException
options - 配置截屏行为IOException - IO异常ExecutionExceptionInterruptedExceptionpublic void stopScreencast()
protected ScreenshotClip roundRectangle(ScreenshotClip clip)
protected ScreenshotClip normalizeRectangle(ScreenshotClip clip)
public String screenshot(ScreenshotOptions options) throws ExecutionException, InterruptedException
截图
备注 在OS X上 截图需要至少1/6秒。:查看讨论。options - 截图选项ExecutionExceptionInterruptedExceptionpublic String screenshot(String path) throws ExecutionException, InterruptedException
path - 截图文件全路径ExecutionExceptionInterruptedExceptionprotected abstract String _screenshot(ScreenshotOptions options) throws IOException
IOExceptionpublic byte[] pdf(PDFOptions options) throws IOException
注意 目前仅支持无头模式的 Chrome
options - 选项IOException - IO异常public void pdf(String path) throws IOException
注意 目前仅支持无头模式的 Chrome
path - pdf存放的路径IOException - IO异常public abstract byte[] pdf(PDFOptions options, LengthUnit lengthUnit) throws IOException
注意 目前仅支持无头模式的 Chrome
options - 选项lengthUnit - 单位IOException - IO异常public String title() throws com.fasterxml.jackson.core.JsonProcessingException
该方法通过调用主框架的title方法来获取页面标题如果在处理JSON数据时发生错误,该方法将抛出JsonProcessingException异常
com.fasterxml.jackson.core.JsonProcessingException - 如果在处理JSON数据时发生错误public abstract boolean isClosed()
public abstract Mouse mouse()
public void click(String selector) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 选择器com.fasterxml.jackson.core.JsonProcessingException - JSON异常public void click(String selector, ClickOptions options) throws com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.core.JsonProcessingExceptionpublic void focus(String selector) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 要给焦点的元素的选择器selector。如果有多个匹配的元素,焦点给第一个元素。com.fasterxml.jackson.core.JsonProcessingException - JSON异常public void hover(String selector) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 要hover的元素的选择器。如果有多个匹配的元素,hover第一个。com.fasterxml.jackson.core.JsonProcessingException - JSON异常public List<String> select(String selector, List<String> values) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 要查找的选择器values - 要选择的选项的值。如果 select 具有 multiple 属性,则考虑所有值,否则仅考虑第一个值。com.fasterxml.jackson.core.JsonProcessingException - JSON异常public void tap(String selector) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 要点击的元素的选择器。如果有多个匹配的元素,点击第一个com.fasterxml.jackson.core.JsonProcessingException - JSON异常public void type(String selector, String text) throws com.fasterxml.jackson.core.JsonProcessingException
要点击特殊按键,比如 Control 或 ArrowDown,用 keyboard.press
selector - 要输入内容的元素选择器。如果有多个匹配的元素,输入到第一个匹配的元素。text - 要输入的内容com.fasterxml.jackson.core.JsonProcessingException - JSON异常public void type(String selector, String text, long delay) throws com.fasterxml.jackson.core.JsonProcessingException
要点击特殊按键,比如 Control 或 ArrowDown,用 keyboard.press
selector - 要输入内容的元素选择器。如果有多个匹配的元素,输入到第一个匹配的元素。text - 要输入的内容delay - 每个字符输入的延迟,单位是毫秒。默认是 0。com.fasterxml.jackson.core.JsonProcessingException - JSON异常public ElementHandle waitForSelector(String selector) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 要等待的元素选择器com.fasterxml.jackson.core.JsonProcessingExceptionpublic ElementHandle waitForSelector(String selector, WaitForSelectorOptions options) throws com.fasterxml.jackson.core.JsonProcessingException
selector - 要等待的元素选择器options - 可选参数com.fasterxml.jackson.core.JsonProcessingExceptionpublic JSHandle waitForFunction(String pptrFunction) throws ExecutionException, InterruptedException, TimeoutException
pptrFunction - 将在浏览器上下文中评估函数,直到返回真值。ExecutionExceptionInterruptedExceptionTimeoutExceptionpublic JSHandle waitForFunction(String pptrFunction, Object... args) throws ExecutionException, InterruptedException, TimeoutException
pptrFunction - 将在浏览器上下文中评估函数,直到返回真值。args - 传递给函数的参数,可以是任意类型ExecutionExceptionInterruptedExceptionTimeoutExceptionpublic JSHandle waitForFunction(String pptrFunction, WaitForSelectorOptions options, Object... args) throws ExecutionException, InterruptedException, TimeoutException
pptrFunction - 将在浏览器上下文中评估函数,直到返回真值。options - 等待函数的选项,包括超时设置等args - 传递给函数的参数,可以是任意类型ExecutionExceptionInterruptedExceptionTimeoutExceptionpublic JSHandle waitForFunction(String pptrFunction, WaitForSelectorOptions options, EvaluateType type, Object... args) throws ExecutionException, InterruptedException, TimeoutException
pptrFunction - 将在浏览器上下文中评估函数,直到返回真值。options - 等待函数的选项,包括超时设置等args - 传递给函数的参数,可以是任意类型type - 有时候需要指定 pptrFunction 为 EvaluateType#String 才能正确执行,大多数情况不需要指定ExecutionExceptionInterruptedExceptionTimeoutExceptionpublic DeviceRequestPrompt waitForDevicePrompt()
提醒
必须在发送设备请求之前调用此函数。它不会返回当前活动的设备提示。
默认等待事件是30s
public DeviceRequestPrompt waitForDevicePrompt(int timeout)
提醒
必须在发送设备请求之前调用此函数。它不会返回当前活动的设备提示。
timeout - 超时时间,默认是30spublic void close()
注意 如果 runBeforeUnload 设置为true,可能会弹出一个 beforeunload 对话框。 这个对话框需要通过页面的 'dialog' 事件手动处理
public abstract void close(boolean runBeforeUnload)
public void setDragging(boolean dragging)
public boolean isDragging()
protected Double convertPrintParameterToInches(String parameter, LengthUnit lengthUnit)
Copyright © 2020–2025. All rights reserved.