Java Selenium获取具有特殊字符的Url
我正在尝试使用selenium java 3.3.1获取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错误 将感谢
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()的结果打印到了控制台上,它看起来很好,因此一定发生了一些非常奇怪的事情,我可以对此进行指正。以下是您问题的答案:
虽然我无法访问您关注的urlhttps://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referer=/beta
但使用Selenium 3.4.0、chromedriver v2.29和Google Chrome 58.x,我尝试了以下用例:
用例1:
如果相关urlhttps://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:
如果相关urlhttps://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())时,它只输入@
符号后的字符串部分。