Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Accessing the DOM of a QtWebKit Application
FrancoLM last edited by
Hi. I need to do GUI testing on a Windows application, whose User Interface was done in QtWebKit.
It has an .exe with the QtWebKit container. Since I have to do automated GUI testing on it, I need to find a way to develop an API (or a WebDriver) in Python to interact with it.
I found several options to do so, like Froglogic Squish, Smartbear, but they are out of my budget.
Some of the options I found so far:
1- I heard Selenium automates web browsers. But I haven't found a way for it to interact with an application. Is it possible to adapt it?
2- I think it may be possible to run my application (in a QProcess for example), then "convert" it to a QtWebKit subclass and then interact with it with Signals and Slots (Or, just open it as a QtWebKit class). Here is some information about Signal and Slots:
3- Does anybody know how does Squish work? I know that you give Squish the application, and Squish interacts with it, but I don't know how it does it.
I'm working on Python and PyQt4.
Any example, suggestion, or any tool that could help will be greatly appreciated.
Thanks in advance!
contactprad last edited by
I have got exactly same problem statement. Any help in this forum would be highly appreciated.
[quote author="FrancoLM" date="1361204797"]3- Does anybody know how does Squish work? I know that you give Squish the application, and Squish interacts with it, but I don't know how it does it.[/quote]
Short: Squish hooks directly into the process and accesses the data.
When squish is out your budget you can try to create a custom application...but i think thats connected with a lot of effort. See "this":http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces.
I can't really help with your other questions but i think question 2 isn't possible, instead you should go for my suggestion with the hooking.
Kur00Hazama last edited by
Late answer, but option-1 (i.e Selenium WebDriver) is possible.
There is a WebDriver implementation for QtWebkit here: https://github.com/cisco-open-source/qtwebdriver .
It also can automate qtwidget, QML and hybrid applications.