AttributeError: 'PySide2.QtWebEngineWidgets.QWebEnginePage' object has no attribute 'findElementById'
时间: 2023-06-23 09:43:12 浏览: 39
这个错误是因为在 PySide2.QtWebEngineWidgets.QWebEnginePage 中没有名为 findElementById 的属性或方法。如果您需要在 QWebEnginePage 中查找元素,您可以使用 JavaScript 来实现。您可以使用 evaluateJavaScript 方法来执行 JavaScript 代码并查找元素。下面是一个示例代码:
```python
from PySide2.QtWebEngineWidgets import QWebEnginePage
class MyWebEnginePage(QWebEnginePage):
def find_element_by_id(self, element_id):
script = "document.getElementById('{}')".format(element_id)
self.runJavaScript(script, self._process_element)
def _process_element(self, result):
element = result.toVariant()
# do something with the element
```
在上面的示例中,我们创建了一个继承自 QWebEnginePage 的自定义类 MyWebEnginePage,并添加了一个名为 find_element_by_id 的方法。该方法接受一个元素 ID,并使用 JavaScript 代码在页面中查找此元素。一旦找到元素,它将调用 _process_element 方法来处理元素。
请注意,runJavaScript 方法是异步执行的,因此您需要使用回调函数来处理结果。