GUI를 표시하는 QT Webkit을 실행하는 내장 장치가 있습니다. QTWebDriver를 사용하여 장치 QTWebKit 브라우저에 액세스해야합니다. 진행 방법에 대한 많은 예제가 없습니다. 누군가 나를 도와 줄 수 있습니까?Selenium Webdriver를 사용하여 QT Webkit에서 실행되는 임베디드 장치 UI에 액세스
1
A
답변
2
gui를 시작하는 QApplication과 동일한 절차로 QtWebDriver를 시작해야합니다.
이 작업을 수행하려면 QtWebDriver의 lib 및 헤더와 연결해야합니다. 예를 QT5.5/src에/qtbase/예/위젯/mainwindows/MainWindow를 예에 webdriver의 suport를 추가 할 수
먼저 mainwindow.pro 수정 :
+++ mainwindow.pro 2017-01-13 15:06:53.048081230 -0800
@@ -1,6 +1,17 @@
TEMPLATE = app
-QT += widgets
+QT += widgets quick
+INCLUDEPATH += /home/user/qtwebdriver/out/dist/desktop/release/Test
+INCLUDEPATH += /home/user/qtwebdriver/out/dist/desktop/release/h
+LIBS += -L/home/user/qtwebdriver/out/dist/desktop/release/libs
+LIBS += -lchromium_base -lWebDriver_core -lWebDriver_extension_qt_base -lWebDriver_extension_qt_quick -lWebDriver_extension_qt_quick_web -lWebDriver_extension_qt_web
+DEFINES += QT_NO_SAMPLES="1"
두 번째 앱에 webdriver 헤더를 포함 및
이 그런 다음 GUI를 실행 wd_setup(argc, argv)
+++ main.cpp 2017-01-13 15:45:33.663764896 -0800
@@ -32,6 +32,7 @@
****************************************************************************/
#include "mainwindow.h"
+#include "Headers.h"
#include <QApplication>
#include <QPainterPath>
@@ -149,6 +150,7 @@ int main(int argc, char **argv)
{
QApplication app(argc, argv);
QMap<QString, QSize> customSizeHints = parseCustomSizeHints(argc, argv);
+ wd_setup(argc, argv);
MainWindow mainWin(customSizeHints);
가 (당신이 추가 코드 만 테스트에 포함 할 플래그를 빌드 할 수 있습니다)를 호출합니다. 기본적으로 browserStartWindow
기능을 통해 발견 한 첫 번째 창을 선택 QtWebDriver 지시 당신은 사용 셀레늄의 RemoteWebDriver이 QtWebDriver
DesiredCapabilities capability = new DesiredCapabilities();
//Start WebDriver by reusing existing widget UI
capability.setCapability("browserStartWindow", "*");
driver = new RemoteWebDriver(new URL("http://remotehost:9517"), capability)
selectWindow("http");
etc...
private String selectWindow(String protocol) {
Set<String> windowHandles = driver.getWindowHandles();
for (Iterator<String> iterator = windowHandles.iterator(); iterator.hasNext();) {
String w = iterator.next();
driver.switchTo().window(w);
if (driver.getCurrentUrl().startsWith(protocol))
return w;
}
return null;
}
에 연결 할 수
포트 9517.에서 시작 webdriver. 올바른 (하위) 창을 선택하면
: 당신의 웹보기가 기본 위젯에 포함되어있는 경우
요 모든 윈도우 핸들을 반복하고 HTML 콘텐츠를 가지고있는 창, selectWindow
의 따라서 사용을 선택해야합니다 정기적 인 셀레늄 테스트입니다.
는 웹킷 URL이 내 PC에 브라우저를 통해 액세스 할 수 있습니다
당신은 QtWebDriver 위키에서이 정보를 찾을 수 있습니까? – python101
@ python101, 무슨 뜻이야? gan을 의미하는 경우 Selenium에서 WebDriver의 현재 URL을 얻은 다음 'driver.getCurrentUrl'을 사용하십시오. WebDriver가 현재 열려있는 페이지를 검사하려면'-wi-server'arg를'wd_setup'으로 전달하십시오. 그런 다음'http : // remotehost : 9222'를 열어 PC의 원격 웹 속성을 사용할 수 있습니다. webdriver args 목록은 https://github.com/cisco-open-source/qtwebdriver/wiki/Command-Line-Switches를 참조하십시오. – Kur00Hazama
그게 내가 필요한 것 같아. 감사 – python101