如何使用不同的IP使用webdriver测试网站

时间:2015-06-19 14:19:49

标签: java selenium webdriver

我目前正在使用selenium webdriver和Java来测试网站。网站上有一个页面,通过IP地址显示特定于您所在位置的信息。我需要在网站上测试4种不同的IP地址。我希望使用完全自动化来验证是否在正确的环境下显示此信息。

我正在寻找解决方案,许多人建议使用代理,VM或selenium服务器。 selenium服务器能满足我的需求吗?这是否可以在不必手动与页面本身交互的情况下实现?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在测试中使用不同的代理。但是对于大多数浏览器来说相当困难,相信我。最简单的方法是在测试中使用phantomJS作为代理:

// Proxy settings
string proxyHostStr = string.Format("{0}:{1}", proxyHost, proxyPort);
string proxyAuth = string.Format("{0}:{1}", proxyLogin, proxyPassword);

var serviceJs = PhantomJSDriverService.CreateDefaultService(phantomPath);
serviceJs.AddArguments("--proxy=" + proxyHostStr, "--proxy-type=http", "--proxy-auth=" + proxyAuth);

driver = new PhantomJSDriver(serviceJs);

答案 1 :(得分:0)

Selenium服务器并不完全可以解决您的问题,而是Selenium Grid。使用Selenium Grid,您可以在多台计算机上运行测试,因此可以在不同的IP上运行。

使用VM,您可以确保您的测试在真实浏览器上运行,无需人工干预;它或多或少类似于使用硒网格。

我建议使用代理,因为它可以节省您在不同计算机上运行时为测试初始化​​硬件所需的时间,并且只需在WebDriver配置文件中设置代理即可轻松运行测试。可以找到文档here