如何用Selenium/PhantomJS列出加载的资源?
我想加载一个网页,并列出该页面的所有加载资源(JavaScript/Images/css).我使用此代码加载页面: from selenium import webdriver driver = webdriver.PhantomJS() driver.get('http://example.com') 上面的代码运行完美,我可以在HTML页面上进行一些处理.问题是,如何列出该页面加载的所有资源?我想要这样的东西: ['http://example.com/img/logo.png', 'http://example.com/css/style.css', 'http://example.com/js/jquery.js', 'http://www.google-analytics.com/ga.js'] 我也向其他解决方案开放,例如使用PySide.QWebView模块.我只想列出页面加载的资源. 解决方案 这不是硒解决方案,但可以与Python和Ph
0 2023-05-25
编程技术问答社区
QWEBVIEW,如何访问HTTPS协议网页?
我的平台:win32,qtsdk 2.4.1,mingw32,qt 4.7. 我想通过QWebView访问https协议网页,我该怎么做,下载了openssl二进制文件并进行设置,但是qwebview也不起作用,怎么了?我需要编译QT源代码并配置-openssl? #include #include #include int main(int argc, char* argv[]) { QApplication app(argc, argv); QWebView view; view.setUrl(QUrl("https://webim.feixin.10086.cn/")); view.show(); return app.exec(); } 解决方案 如果未构建QT而没有引用OpenSSL,则无法访问任何HTTPS网站,这取决于最初在计算机上安装QT
16 2023-05-11
编程技术问答社区
将自定义样式表应用于QWebView
我的QT应用程序在QWebView窗口小部件中加载了外部HTML页面.如何定义自己的样式表以介绍页面的内容?是否可以将qwebview的.css文件捆绑? 解决方案 您可以使用QWebView的设置加载它: QWebView myView; QWebSettings * settings = myView->settings(); QUrl myCssFileURL; settings->setUserStyleSheetUrl(myCssFileURL);
22 2023-04-12
编程技术问答社区
强制QWebView在一个单独的线程中下载网页内容?
我如何强制qwebview在单独线程中下载网页和相关内容? 解决方案 您不能轻易. 您可以实现自己的qnetworkCessManager(请参阅CreateEquest()),将作品卸载到另一个线程中的qnetworkAccessManager. 您的确切问题是什么? 也许可以通过不同的方式解决或可以报告QT的错误? 其他解决方案 现在是默认行为,因此您可以放松并观看:) 请参阅其他解决方案 为什么在主线程上将QWEBView加载内容的问题看到一个问题?我的意思是,如果这样做,主线程根本就不会锁定. 您可以拥有一个隐藏的qwebview加载内容,并且在完成后,您可以显示它. 也许您应该更多地描述您的问题/想法以帮助我们帮助您.
4 2023-04-06
编程技术问答社区
Qt WebKit和永久cookies
我有一个Mainwindow,其中我有一个Qwebview. 我想建立一个特定网站(例如www.kdkdkkd.com)cookies永久性,因此每次用户关闭并重新浏览他不需要再次登录的浏览器. 谢谢, 解决方案 您需要设置自己的" cookie jar". 使用 QNetworkAccessManager::setCookieJar QNetworkAccessManager::setCookieJar . 扩展QNetworkCookieJar - 由于浏览器关闭时默认情况下不会持续cookie: QNetworkCookieJar对象是 已删除,它持有的所有饼干将是 也被丢弃.如果你想保存 饼干,你应该源于 此类并将保存实施到 磁盘为您自己的存储格式. (来自 您可以通过推入每个 QNetworkCookieJar::setCookiesFromUrl (最安全但最慢),或仅当关闭浏览器窗口时(总体上更快,但安全较小,就好像您不会保存异常的cookie
20 2023-03-31
编程技术问答社区
Qt5.6中的跨平台webview
我正在使用 QT 5.6 Windows 10 64x 用于开发跨平台应用程序(桌面 +移动). 在QT 5.5中,我可以使用WebKit制作跨平台应用程序以在我的应用中显示网页,并且可以在Windows,Android,iOS ...上使用它. 今天,我意识到我们不能再使用它了,我们不能将QtWebView用于Windows,也不能与Mingw一起使用QtWebEngine. 因此,我感到困惑:知道我想使用当前的配置(对于Android桌面和移动版本)显示一个网页,该怎么办? 是否希望它可以在下一个QT版本中解决? 编辑: 即使我想运行qt special webview(minibrowser)示例,它也会显示qmake错误: Project ERROR: Unknown module(s) in Qt: webenginewidgets Project ERROR: Unknown module(s) in Qt: webview 解决方案 您不
44 2023-03-28
编程技术问答社区
QWebView 等待加载
bool MainWindow::waitForLoad(QWebView& view) { QEventLoop loopLoad; QTimer timer; QObject::connect(&view, SIGNAL(loadFinished(bool)), &loopLoad, SLOT(quit())); QObject::connect(&timer, SIGNAL(timeout()), &loopLoad, SLOT(quit())); timer.start(timeout); loopLoad.exec(); if(!timer.isActive()) { timer.stop(); view.stop(); return false; } return true; } 说我,这是正确的代码吗?应用有时会在线路后冻结 loopLo
6 2023-03-12
编程技术问答社区
如何让QLayouts正常展开?
我的结构如下: QWidget -QHBoxLayout -QLabel -QVBoxLayout -QLabel -QWebView 我希望hboxlayout填充宽度,但是容器可能很大,但不再或多或少.但是,我希望QVBoxLayout扩展以适应其垂直方向的内容的大小. +-------------+------------------------------+ | FixedTitle: | Expanding to Width Title + | |------------------------------+ | | + | | this is a test which wraps to+ | | the
0 2023-03-03
编程技术问答社区
QWebView允许弹出窗口吗?
在我的项目中,我有一个QWEBView,该QWebView加载一个打开弹出窗口的页面.但是窗口不会打开.我研究了CreateWindow功能,但我不知道如何为小部件子群.这些是我在WebView上放置的一些设置: QWebSettings *settings = ui->webView_2->settings(); settings->setAttribute(QWebSettings::JavascriptEnabled, true); settings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true); 允许我的WebView允许弹出窗口的最简单方法是什么? 感谢您的时间:) 解决方案 您需要重新结束Qwebview的 createwindow .返回的QWEBVIEW将自动设置为所需的URL. 例如: QWebView* WebView::createWindow(QWebPa
14 2023-03-01
编程技术问答社区
QNetworkReply: QWebView中的网络访问被禁用
我无法将网站加载到我的qwebview中,qnetworkreply正在向我返回错误:网络访问被禁用.从本地工程加载文件. 我正在使用QT5.有人知道为什么连接被禁用以及这条线如何影响这种情况: QNetworkProxyFactory::setUseSystemConfiguration(false); 我的ETH0连接正常工作,我能够ping任何网站. 解决方案 来自QT doc:calling setUseSystemConfiguration() overrides any application proxy or proxy factory that was previously set.,因此请小心不要在之前设置任何其他代理. 此外,如果要检查网络访问,则可以这样做: QNetworkAccessManager m_pManager; QNetworkConfigurationManager configManager; m_
8 2023-03-01
编程技术问答社区
使用Ajax请求从QWebView读取本地文件
我正在开发QT/C ++程序,该程序封装了HTML5/jQuery Web应用程序. 我曾经提出AJAX请求以从服务器读取文件.但是现在,我希望QT从本地磁盘读取文件并将其内容发送到我的Web应用程序. 我认为我需要QT来捕获Web应用程序的AJAX请求,并以AJAX请求结果返回文件内容. 问题是我不知道该怎么做.目前,我在Google上还没有找到任何有关的信息. 欢迎任何帮助! 解决方案 我终于找到了如何做.我覆盖QNetworkAccessManager. myqnetworkAccessmanager .h: class MyQNetworkAccessManager : public QNetworkAccessManager { Q_OBJECT protected: virtual QNetworkReply * createRequest(Operation op, const QNetworkRequest &
20 2023-03-01
编程技术问答社区
在QWebView中重写页面回复
我正在尝试在QT的QWEBVIEW中拦截页面/表单请求,并在某些情况下响应其他内容. QNetworkReply* ngcBrowser::createRequest(Operation operation, const QNetworkRequest& request, QIODevice* ioDevice) { view->page()->setNetworkAccessManager(this); QNetworkReply* response = NULL; if (request.url().path().endsWith("ajax")) { response = QNetworkAccessManager::createRequest(operation, request, ioDevice); response->write("{ success
12 2023-03-01
编程技术问答社区
如何设置QWebView'的插座选项?
我想设置带有qwebview的tcpnodelay之类的套接字选项.但是我在qwebview中找不到任何方法来执行此操作.我无法从qwebview获得连接套接字,有什么想法吗?谢谢. 解决方案 qWebView不直接使用qtcpsocket.它使用QnetworkAccessManager. QnetWorkAccessManager不会暴露对QTCPSOCKET的访问.我唯一能想到的控制此类内容的是继承QnetworkCessManager,即覆盖Createrequest方法,该方法在内部提供了自己的QTCPSOCTED.请注意,您对普通QTCPSOCKETCOCT的请求可能与代理服务器以及Qnetworkreply不起作用,Qnetworkreply由通用QnetworkAccessManager 提供
16 2023-02-28
编程技术问答社区
如何设置QWebView'的插座选项?
我想设置带有qwebview的tcpnodelay之类的套接字选项.但是我在qwebview中找不到任何方法来执行此操作.我无法从qwebview获得连接套接字,有什么想法吗?谢谢. 解决方案 qWebView不直接使用qtcpsocket.它使用QnetworkAccessManager. QnetWorkAccessManager不会暴露对QTCPSOCKET的访问.我唯一能想到的控制此类内容的是继承QnetworkCessManager,即覆盖Createrequest方法,该方法在内部提供了自己的QTCPSOCTED.请注意,您对普通QTCPSOCKETCOCT的请求可能与代理服务器以及Qnetworkreply不起作用,Qnetworkreply由通用QnetworkAccessManager 提供
10 2023-02-28
编程技术问答社区
使用Qt C++ QWebView会导致GUI运行缓慢。
当页面通过qwebview加载时,我注意到程序的其他元素开始缓慢运行,特别是GUI. 解决此问题的最佳解决方案是什么? 解决方案 我不能说使用QWebView时,即使在功率不足的SBC上,我曾经对其余的用户界面有任何明显的放缓.我想知道是否还有其他事情正在减慢您的速度. 您是否在加载的所有页面或只是某些页面上遇到此问题? 一个想法:您可以访问设置对象(其他解决方案 我也有相同的问题,并且与具有多个QWEBVIEW可见(在我的情况2-3)和基于JavaScript的元素(例如Raphael Elements或Ckeditor文档)有关.由于必须从主线程中运行QWEBKIT,因此渲染网页中的任何放缓都会减慢GUI用户交互的其余部分.我目前不知道解决这个问题的任何方法.令人失望的是,Qwebview不能放入另一个线程中.
16 2023-02-28
编程技术问答社区
如何发送人工QKeyEvent到QWebEngineView?
上下文:我正在使用自定义屏幕键盘创建一个小型Web浏览器. 它与QT WebKit(QWeb*类)几乎可以正常工作,但是WebKit中的错误归因于QT 5.4.0之后的崩溃,因为它们搬到了QT WebEngine. 因此,我决定按照简短的WebKit-> WebEngine Transition指南将这些内容移至QT WebEngine(QWebEngine*类). 在QWebElement上的警告部分之后,我已经努力展示/隐藏屏幕键盘(现在需要运行异步JS代码). 但是我在上挠头如何将人工关键事件发送到网页. 我尝试了一些东西: QCoreApplication::postEvent(m_webview, event)在使用旧QWeb> 时什么都不做 可以通过运行JavaScript发送键,但我发现这太脏了 谢谢, 解决方案 我想现在唯一实现这一目标的可能性是 利用QAction通过使用类似的东西将事件发送到WebView: connect(
14 2023-02-24
编程技术问答社区
错误。Qt5视频渲染错误代码80040218
在使用 qwebview 制造的 qt5 中运行应用程序时,我访问了带有视频播放器的页面,视频不播放,QT/DirectShow显示以下错误: DirectShowPlayerService :: Dorender:未解决的错误代码80040218 DirectShowPlayerService :: Dorender:未解决的错误代码80040218 详细信息: qt5.1.1 mingw4.8 32bit Windows 7 64bit 我怀疑这就是为什么我的 Windows 是 64bit ,但是*qt/mingw **在 32bit 上运行,也许会错过一些 dll/lib . 如何解决这个问题? 谢谢. 解决方案 错误代码相当通用:0x80040218 VFW_E_CANNOT_RENDER"找不到过滤器的组合来渲染流."典型的原因是该应用程序无法解码媒体供稿,因为它缺少解码组件,例如该视频供稿的编解码器没有安装/可用. 其他解
12 2023-02-24
编程技术问答社区
如果Qwebview从Qresources加载HTML文件,则不会加载任何外部资源
如标题中所述,我的问题是,如果Qwebview位于我的资源中,则无法正确加载HTML文件.如果我从资源外部作为普通本地文件加载它,它可以完美加载它.但这对我来说不是一个选择.我想将文件与应用程序捆绑在一起. 编辑:顺便说一句,我正在谈论网络中的外部资源. (例如 http://host.org/somejavascript.js ) 感谢您的任何帮助 解决方案 请查看 的第二个参数 void QWebView::setHtml ( const QString & html, const QUrl & baseUrl = QUrl() ) 根据 documentation : 外部对象,例如样式表 或HTML中引用的图像 文件相对于 baseurl. 以下是对我有用的代码. #include #include #include #include
12 2023-01-21
编程技术问答社区
是否可以在QWebView中从JavaScript中调用一个C++函数?
我在qwebview中加载了一个网页.在那里,我想让JavaScript调用我的应用程序的函数.然后,该功能将返回JavaScript会动态显示的一些字符串. 可以使用qwebview完成吗?基本上,是否可以在应用程序(在C ++中)和QWEBVIEW控制? 之间有一些桥梁? 解决方案 这就是我最终这样做的方式.我用Q_INVOKABLE方法在标题文件中声明了" Javascriptbridge"类. Q_INVOKABLE可以从JavaScript调用方法: class DictionaryJavaScriptBridge : public QObject { Q_OBJECT public: DictionaryJavaScriptBridge(DictionaryWidget* dictionaryWidget); Q_INVOKABLE QStringList sentences(QString characters); pri
4 2023-01-20
编程技术问答社区