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

Java 如何使用不同的IP使用webdriver测试网站,java,selenium,webdriver,Java,Selenium,Webdriver,我目前正在使用SeleniumWebDriver和Java测试一个网站。网站上有一个页面,通过IP地址显示特定于您所在位置的信息。我需要测试4个不同的IP地址的网站。我希望使用完全自动化来验证此信息是否在正确的情况下显示 我正在研究解决方案,许多人建议使用代理、VM或selenium服务器。selenium服务器适合我的需要吗?这是否可以在不必手动与页面本身交互的情况下实现 感谢您的帮助。在测试中使用不同的代理。但相信我,这对大多数浏览器来说都很难。最简单的方法是使用phantomJS在测试中使

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

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


感谢您的帮助。

在测试中使用不同的代理。但相信我,这对大多数浏览器来说都很难。最简单的方法是使用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);

解决问题的不是Selenium服务器,而是Selenium网格。使用Selenium网格,您可以在多台机器上运行测试,从而在不同的IP上运行测试

使用虚拟机,您可以确保您的测试在真实浏览器上运行,而无需手动干预;这或多或少类似于使用selenium网格


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

Selenium server位于与浏览器交互的东西中。它不会像你描述的那样。使用代理将是解决问题的最简单方法。