2017-01-24 12 views

답변

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의 따라서 사용을 선택해야합니다 정기적 인 셀레늄 테스트입니다.

+0

는 웹킷 URL이 내 PC에 브라우저를 통해 액세스 할 수 있습니다

당신은 QtWebDriver 위키에서이 정보를 찾을 수 있습니까? – python101

+0

@ 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

+0

그게 내가 필요한 것 같아. 감사 – python101