PyQt5 + QtWebEngine 获取 html 元素?

Posted

技术标签:

【中文标题】PyQt5 + QtWebEngine 获取 html 元素?【英文标题】:PyQt5 + QtWebEngine get html element? 【发布时间】:2017-03-16 03:43:51 【问题描述】:

大家!我想将我的项目从 Qt WebKit 移植到 Qt WebEngine!目前我想获取html元素。

我使用 PyQt5 + QT 5.8。

我的获取元素函数:

def get_elment(self,selector,func):
    js = '''
        function r() 
        
            var button = document.querySelector("%s");
            return button;
        
        r();
    '''%selector
    self.wp.runjavascript(js,func)

我用它:

def print_element(e):
    print "e:%s"%e
browser.get_elment('#u1 > a:nth-child(1)',print_element)

我希望 e 应该是一个 html 元素,但它是一个 dict。 结果:

我在网上搜索,但找不到解决方案。谁能帮我 ?非常感谢!

【问题讨论】:

你不能这样做。 Qt WebEngine 中没有与QWebElement 等效的功能。所有 DOM 操作都必须在 Javascript 中完成。 @ekhumoro 好的!谢谢! 【参考方案1】:

感谢@ekhumoro。

Qt WebEngine 中没有与 QWebElement 等价的东西。所有 DOM 操作都必须在 Javascript 中完成。

【讨论】:

以上是关于PyQt5 + QtWebEngine 获取 html 元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何为PyQt5构建Qt WebEngine?

pyqt5+QWebEngine窗口图形无法显示解决方案

如何在 python 和 QtWebEngine 中启用 allowGeolocationOnInsecureOrigins

使用@font face 时在 QtWebEngine 中忽略 Google 字体 (ttf)

PyQt WebEngine 设置 http 标头

模块“PyQt5”没有属性“QtWebEngineWidgets”