Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium获取具有特殊字符的Url_Java_Selenium - Fatal编程技术网

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

Java Selenium获取具有特殊字符的Url,java,selenium,Java,Selenium,我正在尝试使用selenium java 3.3.1获取url,当我执行以下操作时: driver.get(url.toString()) 其中URL如下所示: https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta Selenium只在我的ChromeBrowser的url中输入@之后的所有内容。我已尝试对整个URL进行URL编码,仅对@之后的部分进行URL编码,但这给了我一个无效的URL错误 将感谢

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

driver.get(url.toString())
其中URL如下所示:

https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta
Selenium只在我的ChromeBrowser的url中输入
@
之后的所有内容。我已尝试对整个URL进行URL编码,仅对
@
之后的部分进行URL编码,但这给了我一个无效的URL错误

将感谢并帮助尝试强制selenium java导航到该url

编辑

我试过了

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


但是我需要将URL作为一个变量传入,然后调用
.toString()
。我已经将toString()的结果打印到了控制台上,它看起来很好,因此一定发生了一些非常奇怪的事情,我可以对此进行指正。

以下是您问题的答案:

虽然我无法访问您关注的url
https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referer=/beta
但使用Selenium 3.4.0、chromedriver v2.29和Google Chrome 58.x,我尝试了以下用例:

用例1: 如果相关url
https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referer=/beta
是一个
Sting
类对象,下面的代码可以工作-

String url = "https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta";
driver.get(url);
用例2: 如果相关url
https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referer=/beta
是一个
URL
类对象,在这种情况下,您必须通过
toString()
方法将其从
URL
类转换为
String
类,如下所示,该方法也适用于我:

String url = "https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta";
URL myurl = new URL(url);
driver.get(myurl.toString());
PS:如果使用
URL
类,则必须
导入java.net.URL
将抛出
MalformedURLException
,因此您必须
导入java.net.MalformedURLException


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

手动输入该url对我很有效。因此,这样做很有效:
driver.get(“https://hello.world.io/@快照/web/1.23.207-1-gc2b81d1/?参考=/beta“
我猜您的
toString()
方法有问题您是否尝试过使用driver.get(url)??用例2与我自己的代码库中的非常相似,但我的体验是,当我调用driver.get(myurl.toString())时,它只输入
@
符号后的字符串部分。