2015-12-02 65 views
0

我正在使用phantomJS驅動程序來自動執行一些測試。在主頁上,如果我得到一個webElement並輸出href,我可以將其複製到瀏覽器,並打開頁面,但在測試時,我做了driver.get(loginLink.getAttribute(「href」))它只是保持不變頁。Phantomjs驅動程序:get url not for https

它在活網站上正常工作,但不在我們的內部分段站點上。我已經添加了 caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);

但我仍然無法打開登錄頁面。請有人可以提出什麼可能導致這一點?

更新: 更多的測試,我發現這只是HTTPS使用HTTPS時不會加載

+0

driver.get(loginLink.getAttribute( 「HREF」)),你的意思是你應該重定向到另一個頁? –

+0

是的。我正在輸出loginLink.getAttribute(「href」),如果我將輸出複製到瀏覽器中,它工作正常,但driver.get只是停留在主頁上。我猜這是與安全問題有關,因爲它可以在live site –

+0

上正常工作,您是否嘗試通過放入try/catch來精確確定問題? –

回答

0

phantomjs默認爲SSL 3.0頁。由於SSL 3.0在許多主機上被禁用,因爲它不安全,所以SSL握手將失敗。使用phantomjs --ignore-ssl-errors=true--web-security=false, --ssl-protocol=any使幻像使用更現代的版本(TLS1.0或更高版本)。

phantomJS使用不同的機制設定功能

static ArrayList<String> cliArgsCap = new ArrayList<String>(); 
capabilities = DesiredCapabilities.phantomjs(); 
cliArgsCap.add("--web-security=false"); 
cliArgsCap.add("--ssl-protocol=any"); 
cliArgsCap.add("--ignore-ssl-errors=true"); 
capabilities.setCapability("takesScreenshot", true); 
capabilities.setCapability(
    PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap); 
capabilities.setCapability(
    PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, 
     new String[] { "--logLevel=2" }); 
this.driver = new PhantomJSDriver(capabilities); 

希望這將有助於:)

相關問題