2016-12-29 77 views
-1
 
OS: Windows 10 pro 
IDE: Eclipse Neon 
JDK: version 1.8.0_91 
Selenium standalone server: version 3.0.1 
phantom.exe: version 2.1.1 Windows 
phantom.jar: version 1.2.1 
TestNG: version 6.9.9 

說明: 我試圖與硒的webdriver和Java一起使用phantomJS無頭的瀏覽器。 我需要加載具有證書錯誤的https網址(本網站提供的安全證書不是由可信證書頒發機構頒發)。我需要通過這個問題。 我試圖做到這一點(其他失敗的嘗試中)如下:無法使用硒的webdriver +幻影時加載的HTTPS URL

類initializeTest.java從那裏被運行的TestNG的類的類

public class initializeTest{ 

public static WebDriver driver = null; 

public static WebDriver settingBrowser(String browser) throws InterruptedException { 

if(browser.equalsIgnoreCase("phantom")){ 
File file = new File("C:\\Program Files\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe"); 

System.setProperty("phantomjs.binary.path", file.getAbsolutePath()); 

DesiredCapabilities capabilitiesPhantomJS = DesiredCapabilities.phantomjs(); 
capabilitiesPhantomJS.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--ssl-protocol=tlsv1"}); 
capabilitiesPhantomJS.setPlatform(Platform.ANY); 
capabilitiesPhantomJS.setJavascriptEnabled(true); 
capabilitiesPhantomJS.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 

driver = new PhantomJSDriver(); 
} 

} 
return driver; 
} 

代碼摘錄

@BeforeTest 
public void navigate() throws InterruptedException{ 

String selectBrowser = "phantom" 
this.driver = initializeTest.settingBrowser(selectBrowser); 

driver.navigate().to(https://....); 
thread.sleep(5000); 

System.out.println(driver.getTitle()); 
System.out.println("Begin 2"); 

WebDriverWait wait = new WebDriverWait(driver, 20); 
wait.until(ExpectedConditions.urlContains("login")); 
System.out.println(driver.getTitle()); 
} 

結果:

1.第一個println運行並且沒有任何內容被打印在控制檯上。

2.打印「開始2」,並且最後一個println未執行(未找到url處的登錄字符串)。

3.第三的println不執行

的原因是該URL沒有加載,雖然我不明白爲什麼。 有沒有人有想法或知道解決方法?

回答

1

你可能需要再添加一個命令行標誌:(或可能--ignore-ssl-errors=yes

--ignore-ssl-errors 

capabilitiesPhantomJS.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--ssl-protocol=tlsv1", "--ignore-ssl-errors"}); 
+0

它的工作,謝謝,現在打開頁面。 驅動程序=新PhantomJSDriver(capabilitiesPhantomJS); –

+0

很酷。你能接受答案嗎? –

-1

您需要設置功能

DesiredCapabilities capabilities; 
     capabilities = new DesiredCapabilities(); 
     String[] phantomArgs = new String[] { "--webdriver-loglevel=NONE" }; 
    capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, phantomArgs); 
     capabilities.setJavascriptEnabled(true); 
     capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, 
       "phantomjs.exe"); 
     capabilities.setCapability("phantomjs.binary.path", "phantomjs.exe path"); 
     capabilities.setJavascriptEnabled(true); 
     PhantomJSDriver driver = new PhantomJSDriver(capabilities);