Java Selenium获取具有特殊字符的URL

时间:2017-06-02 21:09:11

标签: java selenium

我正在尝试使用selenium-java 3.3.1获取网址,当我执行以下操作时:

driver.get(url.toString())

网址如下所示:

https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta

Selenium只会在@之后输入我的ChromeBrowser网址中的所有内容。我已经尝试过URLEncoding整个网址,只包含@之后的部分,但这会给我一个无效的网址错误。

非常感谢并帮助尝试强制selenium-java导航到该网址。

修改

我试过

driver.get("https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta");

并且有效。

但我需要将URL作为我正在做的变量传递,然后调用.toString()。我已经将结果打印到toString()到控制台了,它看起来很好,所以必须有一些非常奇怪的事情,我可以把手指放在上面。

1 个答案:

答案 0 :(得分:1)

以下是您的问题的答案:

虽然我无法使用Selenium 3.4.0,chromedriver v2.29&谷歌浏览器58.x我尝试了以下用例:

用例1:

如果相关网址https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/betahttps://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta类对象,则以下代码有效 -

Sting

用例2:

如果相关网址String url = "https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta"; driver.get(url); https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta类对象,则必须将其从URL课程转换为URL课程至String以下方法对我有用:

toString()
  

PS :如果您使用的是String url = "https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta"; URL myurl = new URL(url); driver.get(myurl.toString()); 课程,则必须URL,这将导致import java.net.URL;,因此您必须MalformedURLException < / p>

如果这回答你的问题,请告诉我。