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

Escape URLS From Selenium Click #212

Open asevans48 opened 7 years ago

asevans48 commented 7 years ago

It is probably a good idea to try and escape the URLS being sent via a click. For instance , for now, the input value of UHM% to a search box ending up in the URL throws an Illegal Hex character error.

This is easy to solve most of the time but could be a problem.

[2016-10-21T02:35:56.822][Instance 1][Port 46408] Oct 20, 2016 8:35:56 PM com.sun.webkit.network.URLLoader doRun
[2016-10-21T02:35:56.823][Instance 1][Port 46408] WARNING: Unexpected error
[2016-10-21T02:35:56.823][Instance 1][Port 46408] java.io.IOException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "&O": http://www.icrimewatch.net/results.php?AgencyID=54438&SubmitNameSearch=1&OfndrLast=UHM%&OfndrFirst=&OfndrCity=
[2016-10-21T02:35:56.823][Instance 1][Port 46408]   at com.machinepublishers.jbrowserdriver.StreamConnection.connect(StreamConnection.java:313)
[2016-10-21T02:35:56.823][Instance 1][Port 46408]   at com.sun.webkit.network.URLLoader.sendRequest(URLLoader.java:353)
[2016-10-21T02:35:56.824][Instance 1][Port 46408]   at com.sun.webkit.network.URLLoader.doRun(URLLoader.java:162)
[2016-10-21T02:35:56.824][Instance 1][Port 46408]   at com.sun.webkit.network.URLLoader.lambda$run$93(URLLoader.java:128)
[2016-10-21T02:35:56.824][Instance 1][Port 46408]   at java.security.AccessController.doPrivileged(Native Method)
[2016-10-21T02:35:56.824][Instance 1][Port 46408]   at com.sun.webkit.network.URLLoader.run(URLLoader.java:127)
[2016-10-21T02:35:56.824][Instance 1][Port 46408]   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[2016-10-21T02:35:56.825][Instance 1][Port 46408]   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[2016-10-21T02:35:56.825][Instance 1][Port 46408]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[2016-10-21T02:35:56.825][Instance 1][Port 46408]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[2016-10-21T02:35:56.827][Instance 1][Port 46408]   at java.lang.Thread.run(Thread.java:745)
[2016-10-21T02:35:56.827][Instance 1][Port 46408] Caused by: java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "&O"
[2016-10-21T02:35:56.827][Instance 1][Port 46408]   at java.net.URLDecoder.decode(URLDecoder.java:194)
[2016-10-21T02:35:56.827][Instance 1][Port 46408]   at com.machinepublishers.jbrowserdriver.StreamConnection.connect(StreamConnection.java:278)
[2016-10-21T02:35:56.828][Instance 1][Port 46408]   ... 10 more
[2016-10-21T02:35:56.829][Instance 1][Port 46408] 
Exception in thread "main" java.lang.NoClassDefFoundError: com/thoughtworks/selenium/SeleniumException
    at com.machinepublishers.jbrowserdriver.Util.handleException(Util.java:129)
    at com.machinepublishers.jbrowserdriver.JBrowserDriver.quit(JBrowserDriver.java:1170)
    at org.aevans.goat.selenium.SeleniumBrowser.close(SeleniumBrowser.scala:1031)
    at org.aevans.goat.scalacrawler.SeleniumSingleNodeCrawler.crawl(SeleniumCrawler.scala:1195)
    at org.aevans.goat.scalacrawler.SeleniumCrawlerDriver$.main(SeleniumCrawler.scala:1443)
    at org.aevans.goat.driver.CrawlDriver$.main(CrawlDriver.scala:40)
    at org.aevans.goat.driver.CrawlDriver.main(CrawlDriver.scala)