这已经解决了。我的baseURL错了。它会转到另一个站点,重定向到正确站点的基本URL。感谢。
我在使用带有变量的driver.get()时遇到问题。例如:
driver.get(baseURL+othervariable);
当我执行它时,浏览器会单独转到baseURL。
我在该行之前添加了一个控制台打印,以确保连接正常,如:
System.out.println(baseURL+othervariable);
driver.get(baseURL+othervariable);
我可以在控制台中看到连接正常。
奇怪的是,如果我直接插入没有基本网址的网址,例如:
driver.get("http://examplesite.com/subsection");
有效。
为什么我会遇到这个问题?因为我正在使用for循环来打开我需要检查的URL数组。
所以我的程序结构如下:
for (i=0 ; i<URLs.lenght ; i++) {
driver.get(baseURL + URLs[i]);
// then do some stuff
}
但是浏览器总是单独打开baseURL。
奇怪的是,在本网站的较低环境中执行此操作时,我没有任何问题。 Live网站出现问题。
网站中的某些配置是否会阻止Selenium进入所需的网址?
但后来我不明白为什么当我将URL作为String直接插入到driver.get()中时,它会按预期工作,即使在实时网站中也是如此。
所以问题是我在里面插入一个变量,而且只在实时网站中插入。
我完全糊涂了。我尝试过Firefox驱动程序,Chrome驱动程序等。所有人都这样做。
我也尝试过:
String finalURL = baseURL+URLs[i];
driver.get(finalURL);
它拒绝打开完整的URL。我在许多测试中从未遇到过这个问题。很多次我用里面的变量和连接执行了driver.get(),我从来没有遇到过这个问题。
有人能给我一个暗示吗?为什么问题仅在将URL作为变量发送时出现,而不是在我将其作为字符串发送时出现?
我正在使用Selenium 3.0 btw。
感谢您的帮助。
答案 0 :(得分:0)
尝试确定网址语法(特别是\和//) 对于某些网站,错误的网址会重定向到baseURL页面。 如果你正在开发一个AngularJS项目,你可能需要一些等待(试试ngWebDriver) 祝你好运!