python qwebengineview 操作 dom html元素
时间: 2023-08-24 15:03:44 浏览: 55
使用 PySide2 或 PyQt5 中的 QWebEngineView 可以很方便地操纵 DOM 和 HTML 元素。下面是一些基本的操作方法:
1. 获取页面中的元素
可以使用 `page().runJavaScript()` 方法执行 JavaScript 代码来获取 DOM 元素。
```python
# 获取元素的文本内容
def get_element_text(element_id):
script = f"document.getElementById('{element_id}').textContent"
def callback(result):
print(result)
view.page().runJavaScript(script, callback)
# 获取元素的属性值
def get_element_attribute(element_id, attribute):
script = f"document.getElementById('{element_id}').getAttribute('{attribute}')"
def callback(result):
print(result)
view.page().runJavaScript(script, callback)
```
2. 修改页面中的元素
可以使用 `page().runJavaScript()` 方法执行 JavaScript 代码来修改 DOM 元素。
```python
# 修改元素的文本内容
def set_element_text(element_id, text):
script = f"document.getElementById('{element_id}').textContent = '{text}'"
view.page().runJavaScript(script)
# 修改元素的属性值
def set_element_attribute(element_id, attribute, value):
script = f"document.getElementById('{element_id}').setAttribute('{attribute}', '{value}')"
view.page().runJavaScript(script)
```
3. 添加和删除元素
可以使用 `page().runJavaScript()` 方法执行 JavaScript 代码来添加和删除 DOM 元素。
```python
# 添加元素
def add_element(parent_id, tag_name, text):
script = f"""
var parent = document.getElementById('{parent_id}');
var element = document.createElement('{tag_name}');
element.textContent = '{text}';
parent.appendChild(element);
"""
view.page().runJavaScript(script)
# 删除元素
def remove_element(element_id):
script = f"document.getElementById('{element_id}').remove()"
view.page().runJavaScript(script)
```
以上是一些基本的操作方法,可以根据具体需求进行扩展。