我目前正在使用selenium webdriver和Java来测试网站。网站上有一个页面,通过IP地址显示特定于您所在位置的信息。我需要在网站上测试4种不同的IP地址。我希望使用完全自动化来验证是否在正确的环境下显示此信息。
我正在寻找解决方案,许多人建议使用代理,VM或selenium服务器。 selenium服务器能满足我的需求吗?这是否可以在不必手动与页面本身交互的情况下实现?
感谢您的帮助。
答案 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。