MachinePublishers / jBrowserDriver

A programmable, embeddable web browser driver compatible with the Selenium WebDriver spec -- headless, WebKit-based, pure Java
Other
809 stars 143 forks source link

Cookie handling throws IOException when parsing input which works fine with other browsers. #255

Open Hi-Fi opened 7 years ago

Hi-Fi commented 7 years ago

Error occurred when tried to make jBrowserDriver (version 0.17.5) to work with Selenium2Library-java. Error at https://travis-ci.org/Hi-Fi/robotframework-selenium2library-java/builds/202151969#L2408 and below:

[2017-02-16T07:41:33.084][Instance 18][Port 37063] Feb 16, 2017 7:41:33 AM com.sun.webkit.network.URLLoader doRun
[2017-02-16T07:41:33.084][Instance 18][Port 37063] WARNING: Unexpected error
[2017-02-16T07:41:33.085][Instance 18][Port 37063] java.io.IOException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "%W": https://googleads.g.doubleclick.net/dbm/ad?dbm_c=AKAmf-Dhgz-cbWSZe_3fy51rQ210DpOnLgUrTehyJ7I3VnpslNYDFCTD1hUHagne_3T0qfQrUsAD&dbm_d=AKAmf-C46Lgo7U7Ndbq3EAetmgn7amApyqtay5HYjqK0E3xW0Ms5JEa6XYEkVzlmlQQJpg2C-TFISy1TpAJWs62eXfE4nR63Eg37USANKA-_EcIt_DzcrZg04UKzaeYzNRRx50jXNS20_RTGpOaT2NyM-pLP_0WbsTo29NIwva_FpheWSKCXG7Q6IAL5uQn80apCYKhKQ30F7nFAfAte2thmsGBPsZtaFbK59-hjY-K2EPyR28iIfNbQ_P3qLrUamiVu9glZTrt2yguEMH2xfWIp54u0kTfDDD5PYjgSvDKqWx50-4WE05Mm5C8GzQutT8V3kr7OswOytxDW9IFwTcPmKUAFBUc-0ZiAqqo2lOC_3SGQaFzTJhH2M2__8cVAFQD1TRZHr1zAtzknkh5B10AYFZZYa44jrAPMgXF_BhbLLEGlY6Dy0ZwYhOErkKatIl4ZEjNrQmgWsnwtifezV3kdsP-4ANk7V7ts6Bh5EYpypB0zyy_FmzSZU9MCy7MSF4dWt_n1UGIptSjhB0SyzCmP3yoLbKBAzM9eb2pX5EyAj-7sMp2yIXfb2neAl_BB2KeaDKyoXm1CKcb4rzqec_ztpyZd6IjmY8BDulw9q2wTes_pVBoSyGPmhCECsjwqe4-3bN6J6FuJOpaJCeCH03uanxY-5iK9tRL-eiMJ7IPfJaGiuJRCuXC0HorFIHk005DrkerfqC5HWwXGpUPI51dScpPT3LnF3eBzhumsX5Koc6XRkHOn3n-XU3_6PQdz84R2z_V5_49mA5Gr71nGgJZY0t3DA54pILrNB8MyhTd7Yuivh8_sKRU8EWBAPmaS4EJFZfZ71JwnH9CZPWslTm1XYQamSpPmgBZ6JOrZ3iiv7zS8tXtblxpiqyQiVl30GjZ0ZndR-mA_okhcEvZS4gL8-_HNLzHJKOmVIwGdcFwsa8GsXYNz0mwMmFVSzu6420LgpgF6OK1Su45Xi0v02eBa7XpE9jZKboPjQu0W-IoyPma3PxButvXw2-mMm-8FYzmPPDX1wTX2P0EiRA2FetUfpNwknL_5qshAuKYyi-_Q18iPcPIn5Rzo80GbYE9umKAVpQ_ClZ6CaX8kGUHvQTk3kphYr4pIBvct06_MidSzSO4OaXJjQc73gmN_e-EAjJU8nf3fkTAlEmOrO6vOQs568D-vPXkUqco9GFwJavwiy4n_iXmjZiIhZSMDcuGzl5GoDCSycbOgWszB1HT5f8Fa96tUbynFEzDfYTz3ofJHFw05gSuKNcQV0lE7HmAEIbpYJ40AvO7xYze-vltWSSZDPU1jADse469q9XjkluWnhqtrTT7d23MKgQT8oxUwihGS0eVKhiZSVPjgF-kupdpT16l2-qsOpozeJgprURJR1P9dNt6_-AH0UA5jsSPl39x0FhWz78dmskgjlAIVCD292PXWB_pIieGqAbAMC-eelrrkNPqotKs45MaBLe_E2fM0V3olVl6KCv3aOCTIDeAW-03Z6XIvYA&pr=1:%%WINNING_PRICE%%
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at com.machinepublishers.jbrowserdriver.StreamConnection.connect(StreamConnection.java:313)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at com.sun.webkit.network.URLLoader.sendRequest(URLLoader.java:345)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at com.sun.webkit.network.URLLoader.doRun(URLLoader.java:161)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at com.sun.webkit.network.URLLoader.lambda$run$87(URLLoader.java:127)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at com.sun.webkit.network.URLLoader$$Lambda$136/938515990.run(Unknown Source)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at java.security.AccessController.doPrivileged(Native Method)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at com.sun.webkit.network.URLLoader.run(URLLoader.java:126)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at java.lang.Thread.run(Thread.java:745)
[2017-02-16T07:41:33.085][Instance 18][Port 37063] Caused by: java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "%W"
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at java.net.URLDecoder.decode(URLDecoder.java:194)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  at com.machinepublishers.jbrowserdriver.StreamConnection.connect(StreamConnection.java:278)
[2017-02-16T07:41:33.085][Instance 18][Port 37063]  ... 11 more
[2017-02-16T07:41:33.086][Instance 18][Port 37063] 

Test case is not failing because of this, so problem is just the error.

hollingsworthd commented 7 years ago

Yes, I've noticed this too. It's that the URL parsing done here is more strict than what browsers do. Should be relaxed to achieve parity. Thanks for raising the issue.