2016-06-17 19 views
1

誰かが私の助けを借りて願っています。phantomJS問題。 私は、Jenkins上で実行されているセレンハブに登録するノードとして、unix 64bitでバージョン1.9.8を実行しています。私がxpathを介してアドレス指定している理由で、またはnameというリンクがないHTMLページに移動すると、残念ながらHTMLコードを外部入力として変更することはできません。それをクリックしようとしています次のページに移動します。 Firefoxドライバを使用すると問題なく動作しました。ローカルのセレンサーバ(windows、phantomJS v。1.9.8)を起動しても動作します。PhantomJS WebDriverヘッドレス: ".click"メソッドは効果がありません

マイコード:ローカルセレンの

System.out.println("current url before click: " + getDriver().getCurrentUrl()); 
getDriver().findElement(By.xpath("//a")).click(); 
System.out.println("current url after click: " + getDriver().getCurrentUrl()); 

出力(Windowsの場合):リモートセレングリッド上


出力

current url before click: https://initialpage.html 
current url after click: https://www.my-link.com 
(UNIX):

current url before click: https://initialpage.html 
current url after click: https://initialpage.html 

エラーや似たようなものはありません、それは単にドライバが古いページにとどまるようです。 thread.sleep()いくつかの年代を追加し、

getDriver().navigate().to(getDriver().findElement(By.xpath("//a")).getAttribute("href")); 

click()を交換するが、出力は同じまま、webdriverををインスタンス化しながら、私はすでに別のphantomjs.cli.argsを試してみました。それは、ここで問題念の

は私がwebdriverををインスタンス化する方法である:

driver = new RemoteWebDriver(new URL("http://servername:4444/wd/hub"), DesiredCapabilities.phantomjs()); 

私は任意の助けに感謝、努力の人たちに感謝!ご質問が残っている場合は、お気軽にお問い合わせください!前もって感謝します!

答えて

0

誰かがこのスレッドを突き抜けた場合に備えて、私はついに何時間も絶望した後にそれを理解することができました。問題はSSL関連のプロパティが不足していたwebdriverのインスタンス化でした。これは私のために今働く方法です:

final ArrayList<String> cliArguments = new ArrayList<String>(); 
cliArguments.add("--ssl-protocol=any"); 
final DesiredCapabilities dCap = DesiredCapabilities.phantomjs(); 
dCap.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArguments); 
driver = new RemoteWebDriver(new URL("http://servername:4444/wd/hub"), dCap); 
+0

これは私があなたが同じPhantomJSバージョンをサーバ上に持っていなかったと信じています。おそらくあなたは1.9.7だったでしょう。 npmを通してインストールされたPhantomJS 1.9.8は、実際には1.9.7です。なぜなら、SSLプロトコルの問題が発生したときにバージョン管理が行われていなかったからです。 –

+0

こんにちは、私はphantomjs.orgから1.9.8をダウンロードし、私のUnixマシンでそれをuntarし、それをphantomjs.binary.path変数として設定して、(そのハブに登録する)セレニウムノードに設定しました。何が違っていたのですか、セレンのサーバーのバージョンです(しかし、それは私が渡すphantomjsのバージョンには影響しませんか?) – user3017641

+0

ええと、セレニウムのサーバのバージョンはここでは効果がありません。 –

関連する問題