Selenium Webdriver - 在内部插入变量时,driver.get()无法正常工作

时间:2016-09-27 08:55:11

标签: selenium webdriver

这已经解决了。我的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。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试确定网址语法(特别是\和//) 对于某些网站,错误的网址会重定向到baseURL页面。 如果你正在开发一个AngularJS项目,你可能需要一些等待(试试ngWebDriver) 祝你好运!