Accessing the DOM of a QtWebKit Application



  • 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:
    http://doc.qt.digia.com/4.7-snapshot/signalsandslots.html

    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!



  • I have got exactly same problem statement. Any help in this forum would be highly appreciated.


  • Moderators

    [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.



  • Hi

    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.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.