mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
完善使用方法
This commit is contained in:
parent
4938c79814
commit
558475408c
453
docs/使用方法/DriverElement类功能使用.md
Normal file
453
docs/使用方法/DriverElement类功能使用.md
Normal file
@ -0,0 +1,453 @@
|
||||
## class DriverElement()
|
||||
|
||||
driver 模式的元素对象,包装了一个 WebElement 对象,并封装了常用功能。
|
||||
|
||||
参数说明:
|
||||
|
||||
- ele: WebElement - WebElement 对象
|
||||
- page: DriverPage - 元素所在的页面对象
|
||||
|
||||
## inner_ele
|
||||
|
||||
被包装的 WebElement 对象。
|
||||
|
||||
返回: WebElement
|
||||
|
||||
## html
|
||||
|
||||
返回元素 outerHTML 文本。
|
||||
|
||||
返回: str
|
||||
|
||||
## json
|
||||
|
||||
当返回内容是json格式时,返回对应的字典。
|
||||
|
||||
返回: dict
|
||||
|
||||
## inner_html
|
||||
|
||||
返回元素 innerHTML 文本。
|
||||
|
||||
返回: str
|
||||
|
||||
## tag
|
||||
|
||||
返回元素标签名。
|
||||
|
||||
返回: str
|
||||
|
||||
## attrs
|
||||
|
||||
以字典方式返回元素所有属性及值。
|
||||
|
||||
返回: dict
|
||||
|
||||
## text
|
||||
|
||||
返回元素内的文本,已格式化处理。
|
||||
|
||||
返回: str
|
||||
|
||||
## raw_text
|
||||
|
||||
返回元素内的文本,未格式化处理。
|
||||
|
||||
返回: str
|
||||
|
||||
## comments
|
||||
|
||||
返回元素内注释列表。
|
||||
|
||||
返回: list
|
||||
|
||||
## link
|
||||
|
||||
返回元素 href 或 src 绝对 url。
|
||||
|
||||
返回: str
|
||||
|
||||
## css_path
|
||||
|
||||
返回元素 css selector 绝对路径。
|
||||
|
||||
返回: str
|
||||
|
||||
## xpath
|
||||
|
||||
返回元素 xpath 绝对路径。
|
||||
|
||||
返回: str
|
||||
|
||||
## parent
|
||||
|
||||
返回父级元素对象。
|
||||
|
||||
返回: DriverElement
|
||||
|
||||
## next
|
||||
|
||||
返回下一个兄弟元素对象。
|
||||
|
||||
返回: DriverElement
|
||||
|
||||
## prev
|
||||
|
||||
返回上一个兄弟元素对象。
|
||||
|
||||
返回: DriverElement
|
||||
|
||||
## size
|
||||
|
||||
以字典方式返回元素大小。
|
||||
|
||||
返回: dict
|
||||
|
||||
## location
|
||||
|
||||
以字典方式放回元素坐标。
|
||||
|
||||
返回: dict
|
||||
|
||||
## shadow_root
|
||||
|
||||
返回当前元素的 shadow_root 元素对象
|
||||
|
||||
返回: ShadowRoot
|
||||
|
||||
## before
|
||||
|
||||
返回当前元素的 ::before 伪元素内容
|
||||
|
||||
返回: str
|
||||
|
||||
## after
|
||||
|
||||
返回当前元素的 ::after 伪元素内容
|
||||
|
||||
返回: str
|
||||
|
||||
## select
|
||||
|
||||
如果是 select 元素,返回 Select 对象,否则返回 None。
|
||||
|
||||
返回:Union[Select, None]
|
||||
|
||||
## wait__ele
|
||||
|
||||
等待子元素从dom删除、显示、隐藏。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_ele:Union[str, tuple, DrissionElement, WebElement] - 可以是元素、查询字符串、loc元组
|
||||
|
||||
- mode:str - 等待方式,可选:'del', 'display', 'hidden'
|
||||
|
||||
- timeout:float - 等待超时时间
|
||||
|
||||
返回: 等待是否成功
|
||||
|
||||
## texts()
|
||||
|
||||
返回元素内所有直接子节点的文本,包括元素和文本节点
|
||||
|
||||
参数说明:
|
||||
|
||||
- text_node_only:bool - 是否只返回文本节点
|
||||
|
||||
返回: List[str]
|
||||
|
||||
## parents()
|
||||
|
||||
返回第 N 层父级元素对象。
|
||||
|
||||
参数说明:
|
||||
|
||||
- num: int - 第几层父元素
|
||||
|
||||
返回: DriverElement
|
||||
|
||||
## nexts()
|
||||
|
||||
返回后面第 num 个兄弟元素或节点文本。
|
||||
|
||||
参数说明:
|
||||
|
||||
- num: int - 后面第几个兄弟元素或节点
|
||||
- mode: str - 'ele', 'node' 或 'text',匹配元素、节点、或文本节点
|
||||
|
||||
返回: [DriverElement, str]
|
||||
|
||||
## prevs()
|
||||
|
||||
返回前面第 num 个兄弟元素或节点文本。
|
||||
|
||||
参数说明:
|
||||
|
||||
- num: int - 前面第几个兄弟元素或节点
|
||||
- mode: str - 'ele', 'node' 或 'text',匹配元素、节点、或文本节点
|
||||
|
||||
返回: [DriverElement, str]
|
||||
|
||||
## attr()
|
||||
|
||||
获取元素某个属性的值。
|
||||
|
||||
参数说明:
|
||||
|
||||
- attr: str - 属性名称
|
||||
|
||||
返回: str
|
||||
|
||||
## prop()
|
||||
|
||||
获取元素某个property属性的值。
|
||||
|
||||
参数说明:
|
||||
|
||||
- prop: str - 属性名称
|
||||
|
||||
返回: str
|
||||
|
||||
## ele()
|
||||
|
||||
返回当前元素下级符合条件的子元素、属性或节点文本。
|
||||
如查询参数是字符串,可选 '@属性名:'、'tag:'、'text:'、'css:'、'xpath:'、'.'、'#' 方式。无控制方式时默认用 text 方式查找。
|
||||
如是loc,直接按照内容查询。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str: [Tuple[str, str], str] - 元素的定位信息,可以是 loc 元组,或查询字符串
|
||||
- mode: str - 'single' 或 'all',对应查找一个或全部
|
||||
- timeout: float - 查找元素超时时间
|
||||
|
||||
返回: [DriverElement, str]
|
||||
|
||||
## eles()
|
||||
|
||||
根据查询参数获取符合条件的元素列表。查询参数使用方法和 ele 方法一致。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str: [Tuple[str, str], str] - 查询条件参数
|
||||
- timeout: float - 查找元素超时时间
|
||||
|
||||
返回: List[DriverElement or str]
|
||||
|
||||
## s_ele()
|
||||
|
||||
查找第一个符合条件的元素以SessionElement形式返回。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str: [Tuple[str, str], str] - 元素的定位信息,可以是 loc 元组,或查询字符串
|
||||
|
||||
返回: [SessionElement, str]
|
||||
|
||||
## s_eles()
|
||||
|
||||
查找所有符合条件的元素以SessionElement列表形式返回。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str: [Tuple[str, str], str] - 查询条件参数
|
||||
|
||||
返回: List[SessionElement or str]
|
||||
|
||||
## style()
|
||||
|
||||
返回元素样式属性值。
|
||||
|
||||
参数说明:
|
||||
|
||||
- style: str - 样式属性名称
|
||||
- pseudo_ele: str - 伪元素名称
|
||||
|
||||
返回: str
|
||||
|
||||
## click()
|
||||
|
||||
点击元素,如不成功则用 js 方式点击,可指定是否用 js 方式点击。
|
||||
|
||||
参数说明:
|
||||
|
||||
- by_js: bool - 是否用js方式点击
|
||||
|
||||
返回: bool
|
||||
|
||||
## click_at()
|
||||
|
||||
带偏移量点击本元素,相对于左上角坐标。不传入x或y值时点击元素中点。
|
||||
|
||||
参数说明:
|
||||
|
||||
- x: Union[int, str] - 相对元素左上角坐标的x轴偏移量
|
||||
- y: Union[int, str] - 相对元素左上角坐标的y轴偏移量
|
||||
- by_js: bool - 是否用js方式点击
|
||||
|
||||
返回: None
|
||||
|
||||
## r_click()
|
||||
|
||||
右键单击。
|
||||
|
||||
返回: None
|
||||
|
||||
## r_click_at()
|
||||
|
||||
带偏移量右键单击本元素,相对于左上角坐标。不传入x或y值时点击元素中点。
|
||||
|
||||
参数说明:
|
||||
|
||||
- x: Union[int, str] - 相对元素左上角坐标的x轴偏移量
|
||||
- y: Union[int, str] - 相对元素左上角坐标的y轴偏移量
|
||||
|
||||
返回: None
|
||||
|
||||
## input()
|
||||
|
||||
输入文本或组合键,返回是否成功输入。insure_input 为 False 时始终返回 True。
|
||||
|
||||
参数说明:
|
||||
|
||||
- vals: Union[str, tuple] - 文本值或按键组合
|
||||
- clear: bool - 输入前是否清除文本框
|
||||
- insure_input: bool - 是否自动检测并确保输入正确
|
||||
- timeout: folat - 尝试输入的超时时间,不指定则使用父页面的超时时间,只在insure_input为True时生效
|
||||
|
||||
返回: bool,是否成功输入。insure_input 为 False 时始终返回 True。
|
||||
|
||||
## run_script()
|
||||
|
||||
执行 js 代码,传入自己为第一个参数。
|
||||
|
||||
参数说明:
|
||||
|
||||
- script: str - JavaScript文本
|
||||
- *args - 传入的参数
|
||||
|
||||
返回: Any
|
||||
|
||||
## submit()
|
||||
|
||||
提交表单。
|
||||
|
||||
返回: None
|
||||
|
||||
## clear()
|
||||
|
||||
清空文本框。
|
||||
|
||||
参数说明:
|
||||
|
||||
- insure_clear: bool - 是否确保清空
|
||||
|
||||
返回: bool - 是否清空成功,不能清空的元素返回None
|
||||
|
||||
## is_selected()
|
||||
|
||||
元素是否被选中。
|
||||
|
||||
返回: bool
|
||||
|
||||
## is_enabled()
|
||||
|
||||
元素在页面中是否可用。
|
||||
|
||||
返回: bool
|
||||
|
||||
## is_displayed()
|
||||
|
||||
元素是否可见。
|
||||
|
||||
返回: bool
|
||||
|
||||
## is_valid()
|
||||
|
||||
元素是否还在 DOM 内。该方法用于判断页面跳转元素不能用的情况
|
||||
|
||||
返回: bool
|
||||
|
||||
## screenshot()
|
||||
|
||||
网页截图,返回截图文件路径。
|
||||
|
||||
参数说明:
|
||||
|
||||
- path: str - 截图保存路径,默认为 ini 文件中指定的临时文件夹
|
||||
- filename: str - 截图文件名,默认为页面 title 为文件名
|
||||
|
||||
返回: str
|
||||
|
||||
## select()
|
||||
|
||||
在下拉列表中选择。
|
||||
|
||||
参数说明:
|
||||
|
||||
- text: str - 选项文本
|
||||
|
||||
返回: bool - 是否成功
|
||||
|
||||
## set_prop()
|
||||
|
||||
设置元素property属性。
|
||||
|
||||
参数说明:
|
||||
|
||||
- prop: str - 属性名
|
||||
- value: str - 属性值
|
||||
|
||||
返回: bool -是否成功
|
||||
|
||||
## set_attr()
|
||||
|
||||
设置元素attribute参数。
|
||||
|
||||
参数说明:
|
||||
|
||||
- attr: str - 参数名
|
||||
- value: str - 参数值
|
||||
|
||||
返回: bool -是否成功
|
||||
|
||||
## remove_attr()
|
||||
|
||||
删除元素属性。
|
||||
|
||||
参数说明:
|
||||
|
||||
- attr: str - 参数名
|
||||
|
||||
返回: bool -是否成功
|
||||
|
||||
## drag()
|
||||
|
||||
拖拽当前元素一段距离,返回是否拖拽成功。
|
||||
|
||||
参数说明:
|
||||
|
||||
- x: int - 拖拽x方向距离
|
||||
- y: int - 拖拽y方向距离
|
||||
- speed: int - 拖拽速度
|
||||
- shake: bool - 是否随机抖动
|
||||
|
||||
返回: bool
|
||||
|
||||
## drag_to()
|
||||
|
||||
拖拽当前元素,目标为另一个元素或坐标元组,返回是否拖拽成功。
|
||||
|
||||
参数说明:
|
||||
|
||||
- ele_or_loc[tuple, WebElement, DrissionElement] - 另一个元素或相对当前位置,坐标为元素中点坐标。
|
||||
- speed: int - 拖拽速度
|
||||
- shake: bool - 是否随机抖动
|
||||
|
||||
返回: bool
|
||||
|
||||
## hover()
|
||||
|
||||
在元素上悬停鼠标。
|
||||
|
||||
返回: None
|
142
docs/使用方法/DriverOptions类功能使用.md
Normal file
142
docs/使用方法/DriverOptions类功能使用.md
Normal file
@ -0,0 +1,142 @@
|
||||
### class DriverOptions()
|
||||
|
||||
chrome 浏览器配置类,继承自 selenium.webdriver.chrome.options 的 Options 类,增加了删除配置和保存到文件方法。
|
||||
|
||||
参数说明:
|
||||
|
||||
- read_file: bool - 创建时是否从 ini 文件读取配置信息
|
||||
- ini_path: str - ini 文件路径,为None则读取默认 ini 文件
|
||||
|
||||
### driver_path
|
||||
|
||||
chromedriver.exe 的路径。
|
||||
|
||||
返回: str
|
||||
|
||||
### chrome_path
|
||||
|
||||
chrome.exe 的路径
|
||||
|
||||
返回: str
|
||||
|
||||
### save()
|
||||
|
||||
保存设置到文件,返回自己,用于链式操作。
|
||||
|
||||
参数说明:
|
||||
|
||||
- path: str - ini 文件的路径,传入 'default' 保存到默认ini文件
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### remove_argument()
|
||||
|
||||
移除一个设置。
|
||||
|
||||
参数说明:
|
||||
|
||||
- value: str - 要移除的属性值
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### remove_experimental_option()
|
||||
|
||||
移除一个实验设置,传入 key 值删除。
|
||||
|
||||
参数说明:
|
||||
|
||||
- key: str - 要移除的实验设置 key 值
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### remove_all_extensions()
|
||||
|
||||
移除所有插件,因插件是以整个文件储存,难以移除其中一个,故如须设置则全部移除再重设。
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_argument()
|
||||
|
||||
设置 chrome 属性,无值的属性可设置开关,有值的属性可设置属性的值。
|
||||
|
||||
参数说明:
|
||||
|
||||
- arg: str - 属性名
|
||||
- value[bool, str] - 属性值,有值的属性传入值,没有的传入 bool
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_headless()
|
||||
|
||||
打开或关闭无界面模式。
|
||||
|
||||
参数说明:
|
||||
|
||||
on_off: bool - 打开或关闭
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_no_imgs()
|
||||
|
||||
是否加载图片。
|
||||
|
||||
参数说明:
|
||||
|
||||
on_off: bool - 打开或关闭
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_no_js()
|
||||
|
||||
是否禁用 js。
|
||||
|
||||
参数说明:
|
||||
|
||||
on_off: bool - 打开或关闭
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_mute()
|
||||
|
||||
是否静音。
|
||||
|
||||
参数说明:
|
||||
|
||||
on_off: bool - 打开或关闭
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_user_agent()
|
||||
|
||||
设置浏览器 user agent。
|
||||
|
||||
参数说明:
|
||||
|
||||
- user_agent: str - user agent 字符串
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_proxy()
|
||||
|
||||
设置代理。
|
||||
|
||||
参数说明:
|
||||
|
||||
- proxy: str - 代理地址
|
||||
|
||||
返回: DriverOptions - 返回自己
|
||||
|
||||
### set_paths()
|
||||
|
||||
设置浏览器相关的路径。
|
||||
|
||||
参数说明:
|
||||
|
||||
- driver_path: str - chromedriver.exe 的路径
|
||||
- chrome_path: str - chrome.exe 的路径
|
||||
- debugger_address: str - 调试浏览器地址,例:127.0.0.1:9222
|
||||
- download_path: str - 下载文件路径
|
||||
- user_data_path: str - 用户数据路径
|
||||
- cache_path: str - 缓存路径
|
||||
|
||||
返回: DriverOptions - 返回自己
|
@ -6,6 +6,12 @@ Tips: 多对象协同工作时,可将一个 MixPage 中的 Drission 对象传
|
||||
## 创建对象
|
||||
|
||||
创建对象方式有3种:简易、传入 Drission 对象、传入配置。可根据实际需要选择。
|
||||
参数说明:
|
||||
drission: Drission对象,如没传入则创建一个。
|
||||
mode: 'd' 或 's' 即driver模式和session模式,默认是d模式
|
||||
timeout: 超时时间。d模式时为寻找元素时间,s模式时为连接时间
|
||||
driver_options: 浏览器设置,没有传入drission参数时会用这个设置新建Drission对象
|
||||
session_options: requests设置,没有传入drission参数时会用这个设置新建Drission对象
|
||||
|
||||
```python
|
||||
# 简易创建方式,以 ini 文件默认配置自动创建 Drission 对象
|
||||
@ -25,22 +31,23 @@ page = MixPage(driver_options=do, session_options=so) # 默认 d 模式
|
||||
```python
|
||||
# 默认方式
|
||||
page.get(url)
|
||||
page.post(url, data, **kwargs) # 只有 session 模式才有 post 方法
|
||||
|
||||
# 指定重试次数和间隔
|
||||
page.get(url, retry=5, interval=0.5)
|
||||
page.get(url, retry=5, interval=0.5) #若连接出错,程序会自动重试若干次,可指定重试次数和等待间隔
|
||||
|
||||
page.post(url, data, **kwargs) # 只有 session 模式才有 post 方法
|
||||
```
|
||||
|
||||
Tips:若连接出错,程序会自动重试若干次,可指定重试次数和等待间隔。
|
||||
|
||||
## 切换模式
|
||||
|
||||
在 s 和 d 模式之间切换,切换时会自动同步 cookies 和正在访问的 url。
|
||||
|
||||
```python
|
||||
page.change_mode(go=False) # go 为 False 表示不跳转 url
|
||||
page.change_mode(mode,go)
|
||||
切换模式,'d' 或 's'。切换时会把当前模式的 cookies 复制到目标模式。
|
||||
参数说明:
|
||||
mode: str - 指定目标模式,'d' 或 's'。
|
||||
go: bool - 切换模式后是否跳转到当前 url
|
||||
返回: None
|
||||
```
|
||||
|
||||
Tips:使用某种模式独有的方法时会自动跳转到该模式。
|
||||
|
||||
## 页面属性
|
||||
@ -65,7 +72,7 @@ page.current_tab_handle # 返回当前标签页 handle
|
||||
|
||||
## 页面操作
|
||||
|
||||
调用只属于 d 模式的方法,会自动切换到 d 模式。详细用法见 APIs。
|
||||
调用只属于 d 模式的方法,会自动切换到 d 模式。
|
||||
|
||||
```python
|
||||
page.set_cookies() # 设置cookies
|
||||
@ -74,32 +81,94 @@ page.change_mode() # 切换模式,会自动复制 cookies
|
||||
page.cookies_to_session() # 从 WebDriver 对象复制 cookies 到 Session 对象
|
||||
page.cookies_to_driver() # 从 Session 对象复制 cookies 到 WebDriver 对象
|
||||
page.get(url, retry, interval, **kwargs) # 用 get 方式访问网页,可指定重试次数及间隔时间
|
||||
page.ele(loc_or_ele, timeout) # 获取符合条件的第一个元素、节点或属性
|
||||
page.eles(loc_or_ele, timeout) # 获取所有符合条件的元素、节点或属性
|
||||
page.download(url, save_path, rename, file_exists, **kwargs) # 下载文件
|
||||
page.ele(loc_or_ele, timeout) # 返回页面中符合条件的元素,默认返回第一个。如查询参数是字符串,可选 '@属性名:'、'tag:'、'text:'、'css:'、'xpath:'、'.'、'#' 方式。无控制方式时默认用 text 方式查找。如是loc,直接按照内容查询。
|
||||
参数说明:
|
||||
loc_or_ele: [Tuple[str, str], str, DriverElement, SessionElement, WebElement] - 元素的定位信息,可以是元素对象,loc 元组,或查询字符串
|
||||
timeout: float - 查找元素超时时间,driver 模式下有效
|
||||
返回: [DriverElement, SessionElement, str] - 元素对象或属性、文本节点文本
|
||||
page.eles(loc_or_ele, timeout) # 获取所有符合条件的元素、节点或属性
|
||||
page.download(url, save_path, rename, file_exists, **kwargs) # 下载一个文件,返回是否成功和下载信息字符串。改方法会自动避免和目标路径现有文件重名。
|
||||
参数说明:
|
||||
url: str - 文件 url
|
||||
save_path: str - 存放路径,默认为 ini 文件中指定的临时文件夹
|
||||
rename: str - 重命名文件,不改变扩展名
|
||||
file_exists: str - 若存在同名文件,可选择 'rename', 'overwrite', 'skip' 方式处理
|
||||
**kwargs - 用于 requests 的连接参数
|
||||
返回: Tuple[bool, str] - 下载是否成功(bool)和状态信息(成功时信息为文件路径)的元组
|
||||
|
||||
以下方法和属性只有 driver 模式下生效,调用时会自动切换到 driver 模式
|
||||
page.close_driver() # 关闭 WebDriver 对象
|
||||
page.close_session() # 关闭 Session 对象
|
||||
|
||||
# s 模式独有:
|
||||
page.post(url, data, retry, interval, **kwargs) # 以 post 方式访问网页,可指定重试次数及间隔时间
|
||||
|
||||
page.post(url, data, retry, interval, **kwargs) ##以 post 方式跳转,调用时自动切换到 session 模式。
|
||||
参数说明:
|
||||
url: str - 目标 url
|
||||
data: dict - 提交的数据
|
||||
go_anyway: bool - 是否强制跳转。若目标 url 和当前 url 一致,默认不跳转。
|
||||
show_errmsg: bool - 是否显示和抛出异常
|
||||
retry: int - 连接出错时重试次数
|
||||
interval: float - 重试间隔(秒)
|
||||
**kwargs - 用于 requests 的连接参数
|
||||
返回: [bool, None] - url 是否可用
|
||||
# d 模式独有:
|
||||
page.wait_ele(loc_or_ele, mode, timeout) # 等待元素从 dom 删除、显示、隐藏
|
||||
page.run_script(js, *args) # 运行 js 语句
|
||||
page.create_tab(url) # 新建并定位到一个标签页,该标签页在最后面
|
||||
参数说明:
|
||||
loc_or_ele: [str, tuple, DriverElement, WebElement] - 元素查找方式,与ele()相同
|
||||
mode: str - 等待方式,可选:'del', 'display', 'hidden'
|
||||
timeout: float - 等待超时时间
|
||||
返回: bool - 等待是否成功
|
||||
page.run_script(js, *args) 执行JavaScript代码。
|
||||
参数说明:
|
||||
script: str - JavaScript 代码文本
|
||||
*args - 传入的参数
|
||||
返回: Any
|
||||
page.create_tab(url) # 新建并定位到一个标签页,该标签页在最后面。
|
||||
参数说明:
|
||||
url: str - 新标签页跳转到的网址
|
||||
返回: None
|
||||
page.to_tab(num_or_handle) # 跳转到标签页
|
||||
参数说明:
|
||||
num_or_handle:[int, str] - 标签页序号或handle字符串,序号第一个为0,最后为-1
|
||||
返回: None
|
||||
page.close_current_tab() # 关闭当前标签页
|
||||
page.close_other_tabs(num_or_handles) # 关闭其它标签页
|
||||
page.to_iframe(iframe) # 切入 iframe
|
||||
page.screenshot(path) # 页面截图
|
||||
page.scroll_to_see(element) # 滚动直到某元素可见
|
||||
page.close_other_tabs(num_or_handles) # 关闭传入的标签页以外标签页,默认保留当前页。可传入列表或元组。
|
||||
page.to_iframe(loc_or_ele) # 跳转到 iframe,默认跳转到最高层级,兼容 selenium 原生参数。
|
||||
参数说明:
|
||||
loc_or_ele: [int, str, tuple, WebElement, DriverElement] - 查找 iframe 元素的条件,可接收 iframe 序号(0开始)、id 或
|
||||
name、查询字符串、loc参数、WebElement对象、DriverElement 对象,传入 'main' 跳到最高层,传入 'parent' 跳到上一层
|
||||
示例:
|
||||
to_iframe('tag:iframe') - 通过传入 iframe 的查询字符串定位
|
||||
to_iframe('iframe_id') - 通过 iframe 的 id 属性定位
|
||||
to_iframe('iframe_name') - 通过 iframe 的 name 属性定位
|
||||
to_iframe(iframe_element) - 通过传入元素对象定位
|
||||
to_iframe(0) - 通过 iframe 的序号定位
|
||||
to_iframe('main') - 跳到最高层
|
||||
to_iframe('parent') - 跳到上一层
|
||||
返回: None
|
||||
page.screenshot(path,filename) # 网页截图,返回截图文件路径。
|
||||
参数说明:
|
||||
path: str - 截图保存路径,默认为 ini 文件中指定的临时文件夹
|
||||
filename: str - 截图文件名,默认为页面 title 为文件名
|
||||
返回: str
|
||||
page.scroll_to_see(loc_or_ele) # 滚动直到某元素可见
|
||||
参数说明:
|
||||
loc_or_ele: [str, tuple, WebElement, DriverElement] - 查找元素的条件,和 ele() 方法的查找条件一致。
|
||||
返回: None
|
||||
page.scroll_to(mode, pixel) # 按参数指示方式滚动页面,可选滚动方向:'top', 'bottom', 'rightmost', 'leftmost', 'up', 'down', 'left', 'right', 'half'
|
||||
page.refresh() # 刷新当前页面
|
||||
page.back() # 浏览器后退
|
||||
page.et_window_size(x, y) # 设置浏览器窗口大小,默认最大化
|
||||
page.set_window_size(x, y) # 设置浏览器窗口大小,默认最大化
|
||||
page.check_page() # 检测页面是否符合预期
|
||||
page.chrome_downloading() # 获取 chrome 正在下载的文件列表
|
||||
page.process_alert(mode, text) # 处理提示框
|
||||
page.chrome_downloading(download_path) # 获取 chrome 正在下载的文件列表
|
||||
参数说明:
|
||||
download_path: str - 下载文件夹路径
|
||||
返回:list
|
||||
page.process_alert(mode, text) # 处理提示框。
|
||||
参数说明:
|
||||
mode: str - 'ok' 或 'cancel',若输入其它值,不会按按钮但依然返回文本值
|
||||
text: str - 处理 prompt 提示框时可输入文本
|
||||
返回: [str, None] - 提示框内容文本
|
||||
```
|
||||
|
||||
## cookies 的使用
|
||||
|
68
docs/使用方法/OptionsManager类功能使用.md
Normal file
68
docs/使用方法/OptionsManager类功能使用.md
Normal file
@ -0,0 +1,68 @@
|
||||
### class OptionsManager()
|
||||
|
||||
管理配置文件内容的类。
|
||||
|
||||
参数说明:
|
||||
|
||||
- path: str - ini文件路径,不传入则默认读取当前文件夹下的 configs.ini 文件
|
||||
|
||||
### paths
|
||||
|
||||
返回 paths 设置信息。
|
||||
|
||||
返回: dict
|
||||
|
||||
### chrome_options
|
||||
|
||||
返回 chrome 设置信息。
|
||||
|
||||
返回: dict
|
||||
|
||||
### session_options
|
||||
|
||||
返回 session 设置信息。
|
||||
|
||||
返回: dict
|
||||
|
||||
### get_value()
|
||||
|
||||
获取配置的值。
|
||||
|
||||
参数说明:
|
||||
|
||||
- section: str - 段落名称
|
||||
- item: str - 配置项名称
|
||||
|
||||
返回: Any
|
||||
|
||||
### get_option()
|
||||
|
||||
以字典的格式返回整个段落的配置信息。
|
||||
|
||||
参数说明:
|
||||
|
||||
- section: str - 段落名称
|
||||
|
||||
返回: dict
|
||||
|
||||
### set_item()
|
||||
|
||||
设置配置值,返回自己,用于链式操作。
|
||||
|
||||
参数说明:
|
||||
|
||||
- section: str - 段落名称
|
||||
- item: str - 配置项名称
|
||||
- value: Any - 值内容
|
||||
|
||||
返回: OptionsManager - 返回自己
|
||||
|
||||
### save()
|
||||
|
||||
保存设置到文件,返回自己,用于链式操作。
|
||||
|
||||
参数说明:
|
||||
|
||||
- path: str - ini 文件的路径,传入 'default' 保存到默认ini文件
|
||||
|
||||
返回: OptionsManager - 返回自己
|
78
docs/使用方法/Select类功能使用.md
Normal file
78
docs/使用方法/Select类功能使用.md
Normal file
@ -0,0 +1,78 @@
|
||||
## class Select()
|
||||
|
||||
Select 类专门用于处理 d 模式下 select 标签。
|
||||
|
||||
参数说明:
|
||||
|
||||
- ele: select 元素对象
|
||||
|
||||
## is_multi
|
||||
|
||||
返回:是否多选列表
|
||||
|
||||
## options
|
||||
|
||||
返回:所有被选中的option元素列表
|
||||
|
||||
## selected_option
|
||||
|
||||
返回:第一个被选中的option元素
|
||||
|
||||
## selected_options
|
||||
|
||||
返回:所有被选中的option元素列表
|
||||
|
||||
## clear()
|
||||
|
||||
清除所有已选项。
|
||||
|
||||
## select()
|
||||
|
||||
选定或取消选定下拉列表中子元素。
|
||||
|
||||
参数说明:
|
||||
|
||||
- text_value_index:根据文本、值选或序号择选项,若允许多选,传入list或tuple可多选
|
||||
- para_type:参数类型,可选 'text'、'value'、'index'
|
||||
- deselect:是否取消选择
|
||||
|
||||
返回:是否选择成功
|
||||
|
||||
## select_multi()
|
||||
|
||||
选定或取消选定下拉列表中多个子元素。
|
||||
|
||||
参数说明:
|
||||
|
||||
- text_value_index:根据文本、值选或序号择选多项
|
||||
- para_type:参数类型,可选 'text'、'value'、'index'
|
||||
- deselect:是否取消选择
|
||||
|
||||
返回:是否选择成功
|
||||
|
||||
## deselect()
|
||||
|
||||
选定或取消选定下拉列表中子元素。
|
||||
|
||||
参数说明:
|
||||
|
||||
- text_value_index:根据文本、值选或序号取消择选项,若允许多选,传入list或tuple可多选
|
||||
- para_type:参数类型,可选 'text'、'value'、'index'
|
||||
|
||||
返回:是否选择成功
|
||||
|
||||
## deselect_multi()
|
||||
|
||||
选定或取消选定下拉列表中多个子元素。
|
||||
|
||||
参数说明:
|
||||
|
||||
- text_value_index:根据文本、值选或序号取消择选多项
|
||||
- para_type:参数类型,可选 'text'、'value'、'index'
|
||||
|
||||
返回:是否选择成功
|
||||
|
||||
## invert()
|
||||
|
||||
反选。
|
||||
|
196
docs/使用方法/SessionElement类功能使用.md
Normal file
196
docs/使用方法/SessionElement类功能使用.md
Normal file
@ -0,0 +1,196 @@
|
||||
# class SessionElement()
|
||||
|
||||
session 模式的元素对象,包装了一个Element对象,并封装了常用功能。
|
||||
|
||||
参数说明:
|
||||
|
||||
- ele: HtmlElement - lxml 库的 HtmlElement 对象
|
||||
- page: SessionPage - 元素所在页面对象
|
||||
|
||||
## inner_ele
|
||||
|
||||
被包装的 HTMLElement 对象。
|
||||
|
||||
返回: HtmlElement
|
||||
|
||||
## page
|
||||
|
||||
元素所在页面对象,如果是从 html 文本生成的元素,则为 None。
|
||||
|
||||
返回:SessionElement 或 None
|
||||
|
||||
## tag
|
||||
|
||||
返回元素标签名。
|
||||
|
||||
返回: str
|
||||
|
||||
## html
|
||||
|
||||
返回元素 outerHTML 文本。
|
||||
|
||||
返回: str
|
||||
|
||||
## inner_html
|
||||
|
||||
返回元素 innerHTML 文本。
|
||||
|
||||
返回: str
|
||||
|
||||
## attrs
|
||||
|
||||
以字典格式返回元素所有属性的名称和值。
|
||||
|
||||
返回: dict
|
||||
|
||||
## text
|
||||
|
||||
返回元素内文本,已格式化处理。
|
||||
|
||||
返回: str
|
||||
|
||||
## raw_text
|
||||
|
||||
返回元素内未格式化处理的原始文本。
|
||||
|
||||
返回: str
|
||||
|
||||
## comments
|
||||
|
||||
以 list 方式返回元素内所有注释文本。
|
||||
|
||||
返回: list
|
||||
|
||||
## link
|
||||
|
||||
返回元素 href 或 src 绝对 url。
|
||||
|
||||
返回: str
|
||||
|
||||
## css_path
|
||||
|
||||
返回元素 css selector 绝对路径。
|
||||
|
||||
返回: srt
|
||||
|
||||
## xpath
|
||||
|
||||
返回元素 xpath 绝对路径。
|
||||
|
||||
返回: srt
|
||||
|
||||
## parent
|
||||
|
||||
返回父级元素对象。
|
||||
|
||||
返回: SessionElement
|
||||
|
||||
## next
|
||||
|
||||
返回下一个兄弟元素对象。
|
||||
|
||||
返回: SessionElement
|
||||
|
||||
## prev
|
||||
|
||||
返回上一个兄弟元素对象。
|
||||
|
||||
返回: SessionElement
|
||||
|
||||
## parents()
|
||||
|
||||
返回第N层父级元素对象。
|
||||
|
||||
参数说明:
|
||||
|
||||
- num:int - 第几层父元素
|
||||
|
||||
返回: SessionElement
|
||||
|
||||
## nexts()
|
||||
|
||||
返回后面第 num 个兄弟元素或节点文本。
|
||||
|
||||
参数说明:
|
||||
|
||||
- num - 后面第几个兄弟元素
|
||||
- mode: str - 'ele', 'node' 或 'text',匹配元素、节点、或文本节点
|
||||
|
||||
返回: [SessionElement, str]
|
||||
|
||||
## prevs()
|
||||
|
||||
返回前 N 个兄弟元素对象。
|
||||
|
||||
参数说明:
|
||||
|
||||
- num - 前面第几个兄弟元素
|
||||
- mode: str - 'ele', 'node' 或 'text',匹配元素、节点、或文本节点
|
||||
|
||||
返回: [SessionElement, str]
|
||||
|
||||
## attr()
|
||||
|
||||
获取元素某个属性的值。
|
||||
|
||||
参数说明:
|
||||
|
||||
- attr: str - 属性名称
|
||||
|
||||
返回: str
|
||||
|
||||
## texts()
|
||||
|
||||
返回元素内所有直接子节点的文本,包括元素和文本节点。
|
||||
|
||||
参数说明:
|
||||
|
||||
- text_node_only: 是否只返回文本节点
|
||||
|
||||
返回: 文本组成的 list
|
||||
|
||||
## ele()
|
||||
|
||||
根据查询参数获取元素。
|
||||
如查询参数是字符串,可选 '@属性名:'、'tag:'、'text:'、'css:'、'xpath:'、'.'、'#' 方式。无控制方式时默认用 text 方式查找。
|
||||
如是loc,直接按照内容查询。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str:[Tuple[str, str], str] - 查询条件参数
|
||||
|
||||
- timeout: float -不起实际作用,用于和父类对应
|
||||
|
||||
返回: [SessionElement, str]
|
||||
|
||||
## eles()
|
||||
|
||||
根据查询参数获取符合条件的元素列表。查询参数使用方法和ele方法一致。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str: [Tuple[str, str], str] - 查询条件参数
|
||||
|
||||
- timeout: float -不起实际作用,用于和父类对应
|
||||
|
||||
返回: List[SessionElement or str]
|
||||
|
||||
## s_ele()
|
||||
|
||||
功能与 ele() 一致,这里仅用于和 DriverElement 匹配。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str:[Tuple[str, str], str] - 查询条件参数
|
||||
|
||||
返回: [SessionElement, str]
|
||||
|
||||
## s_eles()
|
||||
|
||||
功能与 eles() 一致,这里仅用于和 DriverElement 匹配。
|
||||
|
||||
参数说明:
|
||||
|
||||
- loc_or_str: [Tuple[str, str], str] - 查询条件参数
|
||||
|
||||
返回: List[SessionElement or str]
|
129
docs/使用方法/SessionOptions类功能使用.md
Normal file
129
docs/使用方法/SessionOptions类功能使用.md
Normal file
@ -0,0 +1,129 @@
|
||||
# class SessionOptions()
|
||||
|
||||
Session 对象配置类。
|
||||
|
||||
参数说明:
|
||||
|
||||
- read_file: bool - 创建时是否从 ini 文件读取配置信息
|
||||
- ini_path: str - ini 文件路径,为None则读取默认 ini 文件
|
||||
|
||||
## headers
|
||||
|
||||
headers 配置信息。
|
||||
|
||||
返回: dict
|
||||
|
||||
## cookies
|
||||
|
||||
cookies 配置信息。
|
||||
|
||||
返回: list
|
||||
|
||||
## auth
|
||||
|
||||
auth 配置信息。
|
||||
|
||||
返回: tuple
|
||||
|
||||
## proxies
|
||||
|
||||
proxies 配置信息。
|
||||
|
||||
返回: dict
|
||||
|
||||
## hooks
|
||||
|
||||
hooks 配置信息。
|
||||
|
||||
返回: dict
|
||||
|
||||
## params
|
||||
|
||||
params 配置信息。
|
||||
|
||||
返回: dict
|
||||
|
||||
## verify
|
||||
|
||||
verify 配置信息。
|
||||
|
||||
返回: bool
|
||||
|
||||
## cert
|
||||
|
||||
cert 配置信息。
|
||||
|
||||
返回: [str, tuple]
|
||||
|
||||
## adapters
|
||||
|
||||
adapters 配置信息。
|
||||
|
||||
返回: adapters
|
||||
|
||||
## stream
|
||||
|
||||
stream 配置信息。
|
||||
|
||||
返回: bool
|
||||
|
||||
## trust_env
|
||||
|
||||
srust_env 配置信息。
|
||||
|
||||
返回: bool
|
||||
|
||||
## max_redirects
|
||||
|
||||
max_redirect 配置信息。
|
||||
|
||||
返回: int
|
||||
|
||||
## set_a_header()
|
||||
|
||||
设置 headers 中一个项。
|
||||
|
||||
参数说明:
|
||||
|
||||
- attr: str - 配置项名称
|
||||
- value: str - 配置的值
|
||||
|
||||
返回: 当前对象
|
||||
|
||||
## remove_a_header()
|
||||
|
||||
从 headers 中删除一个设置。
|
||||
|
||||
参数说明:
|
||||
|
||||
- attr: str - 要删除的配置名称
|
||||
|
||||
返回:当前对象
|
||||
|
||||
## set_proxies()
|
||||
|
||||
设置proxies参数
|
||||
|
||||
{'http': 'http://xx.xx.xx.xx:xxxx', 'https': 'http://xx.xx.xx.xx:xxxx'}
|
||||
|
||||
参数说明:
|
||||
|
||||
- proxies: dict - 代理信息字典
|
||||
|
||||
返回:当前对象
|
||||
|
||||
## save()
|
||||
|
||||
保存设置到文件。
|
||||
|
||||
参数说明:
|
||||
|
||||
- path: str - ini文件的路径,传入 'default' 保存到默认ini文件
|
||||
|
||||
返回:当前对象
|
||||
|
||||
## as_dict()
|
||||
|
||||
以字典形式返回当前对象。
|
||||
|
||||
返回: dict
|
@ -13,3 +13,23 @@ set_paths(paths) # 见 [初始化] 一节
|
||||
set_argument(arg, value) # 设置属性,若属性无值(如'zh_CN.UTF-8'),value 为 bool 表示开关;否则value为str,当 value为''或 False,删除该属性项
|
||||
check_driver_version() # 检查chrome和chromedriver版本是否匹配
|
||||
```
|
||||
举例场景:我在本地项目 要覆盖默认的configs.ini文件相关内容,具体写法流程。
|
||||
1:新建一个py文件
|
||||
2:导入easy_set
|
||||
from DrissionPage.easy_set import set_paths
|
||||
3:调set_path方法设置相关的参数值
|
||||
set_paths(
|
||||
driver_path=r"E:\flying-soft-package\chrome75\chrome75\chromedriver75.exe",
|
||||
chrome_path=r"E:\flying-soft-package\chrome75\chrome75\chrome.exe",
|
||||
user_data_path=r"E:\flying-soft-package\chrome75\chrome75\user_data",
|
||||
debugger_address='127.0.0.1:9222',
|
||||
check_version=True
|
||||
)
|
||||
参数含义:
|
||||
driver_path:chromedriver.exe路径
|
||||
chrome_path: chrome.exe路径
|
||||
user_data_path: 用户数据路径
|
||||
debugger_address: 调试浏览器地址,例:127.0.0.1:9222
|
||||
check_version: 是否检查chromedriver和chrome是否匹配(若不设置,默认是true)
|
||||
4:执行这个py文件 右击run。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user