繁体   English   中英

Selenium:使用 Java 代码使用默认配置文件打开 Firefox

[英]Selenium: Open Firefox with default profile using java code

我在 Java 代码中使用 Selenium 在 Firefox 中打开一个 Web 应用程序。 但是我遇到了 Firefox 配置文件的问题,因为当我运行代码时,Firefox 窗口使用新的配置文件打开,因此无法打开 Web 应用程序,因为代理设置不同(我应该将 IP 地址添加到 Firefox 中,没有代理 IP) . 我尝试从我的代码中获取默认配置文件,但没有任何改变。 我也尝试创建新的配置文件,但我不知道如何向其中添加 IP。 我更改了代码,以便我可以手动打开 Firefox,然后 Selenium 在 nee 选项卡中打开应用程序,因此 IP 将在那里。 但这也失败了,代码仍然打开新窗口。 如果有人可以提供帮助,我将不胜感激。

我们可以使用代理值创建一个 firefox 配置文件,并使用该配置文件打开 Firefox 实例。 下面的代码可能会给出一些想法。

public static void main(String[] args) 
{


      // Create proxy class object
      Proxy p=new Proxy();

      // Set HTTP Port to 7777
      p.setHttpProxy("localhost:7777");

      // Create desired Capability object
      DesiredCapabilities cap=new DesiredCapabilities();


      // Pass proxy object p
      cap.setCapability(CapabilityType.PROXY, p);
      System.setProperty("webdriver.gecko.driver", "//PATH");
      WebDriver driver=new FirefoxDriver(cap);

 }

希望这可以帮助。 谢谢。

由于您必须使用 GeckoDriver 才能使用最新的 firefox,因此您可以使用它在 firefox 中为 geckodriver 设置代理。

String PROXY = "localhost";
int PORT = 8080;

JSONObject json = new JsonObject();
json.addProperty("proxyType", "MANUAL");
json.addProperty("httpProxy", PROXY);
json.addProperty("httpProxyPort", PORT);
json.addProperty("sslProxy", PROXY);
json.addProperty("sslProxyPort", PORT);

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("proxy", json);

GeckoDriverService service =new GeckoDriverService.Builder(firefoxBinary)
  .usingDriverExecutable(new File("path to geckodriver"))
  .usingAnyFreePort()
  .usingAnyFreePort()
  .build();
service.start();

// GeckoDriver currently needs the Proxy set in RequiredCapabilities
driver = new FirefoxDriver(service, cap, cap);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM