2017-01-23 10 views
0

私はwebdriverを3週間書いています。 addEventListenerの検索に関する問題が発生しました。php webdriverとseleniumを使用しているときにaddEventListener関数が見つかりません

私は、セレンのスタンドアロンサーバーを使用し、PHPフレームワークはFacebookによって開発されました。

私が望むのは、ヘッドレスウェブドライバを実行することです。

以下、私のコードの一部です。

$host = 'http://localhost:4444/wd/hub'; // this is the default 
$capabilities = array(
    Remote\WebDriverCapabilityType::BROWSER_NAME => 'htmlunit', 
    Remote\WebDriverCapabilityType::JAVASCRIPT_ENABLED => true, 
); 
$driver = RemoteWebDriver::create($host, $capabilities, 5000); 
$window = new WebDriverDimension(1024, 768); 
$driver->manage()->window()->setSize($window); 

そして、そこのエラーメッセージは、私はセレンの最新バージョンを1.8にJavaのバージョンを更新することはできません、ので、いくつかの理由の

org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot find function addEventListener in object [object HTMLDocument]. (https://www.grb.gov.tw/resource/js/jquery-2.1.4.min.js#2) 
Build info: version: '2.50.1', revision: 'd7fc91b', time: '2016-01-29 19:08:26' 
System info: host: 'N/A', ip: 'N/A', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-229.el7.x86_64', java.version: '1.7.0_75' 
Driver info: driver.version: EventFiringWebDriver 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver.get(HtmlUnitDriver.java:554) 
     at org.openqa.selenium.htmlunit.HtmlUnitDriver.get(HtmlUnitDriver.java:530) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:103) 
     at com.sun.proxy.$Proxy12.get(Unknown Source) 
     at org.openqa.selenium.support.events.EventFiringWebDriver.get(EventFiringWebDriver.java:163) 
     at org.openqa.selenium.remote.server.handler.ChangeUrl.call(ChangeUrl.java:40) 
     at org.openqa.selenium.remote.server.handler.ChangeUrl.call(ChangeUrl.java:1) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
     at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:176) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 

ある、と私は使用セレンのバージョンがあります2.50.1。 これを解決する方法について、htmlunitdriverにより高いバージョンのブラウザを割り当てるなど、いくつかのリソースが見つかりました。このように

WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6); 

しかし、私はどのようにfacebookのPHPフレームワークの下でそれを行うか分からない。フレームワークに縛られていますか?

ご鑑賞いただきありがとうございます。重複した質問がございましたら、申し訳ありません。

答えて

0

最後に、最新のhtmlunit jarファイルをセレンスタンドアロンサーバーにコンパイルすることでこの問題を解決しました。

代わりjava selenium-server-standalone-2.50.1.jar

LIBのは、このコマンド、java -Djava.ext.dirs=./lib -jar /selenium-server-standalone-2.50.1.jarを使用して、スタンドアロンサーバーを開いて、最新のhtmlunitのjarファイルを含むフォルダが
あなたはhere

からダウンロードすることができますです
関連する問題