2015-12-02 78 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); 

希望这将有助于:)

相关问题