我正在尝试使用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()到控制台了,它看起来很好,所以必须有一些非常奇怪的事情,我可以把手指放在上面。
答案 0 :(得分:1)
以下是您的问题的答案:
虽然我无法使用Selenium 3.4.0,chromedriver v2.29&谷歌浏览器58.x我尝试了以下用例:
如果相关网址https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta
是https://hello.world.io/@snapshot/web/1.23.207-1-gc2b81d1/?referrer=/beta
类对象,则以下代码有效 -
Sting
如果相关网址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>
如果这回答你的问题,请告诉我。