【问题标题】:Setting geolocation in Firefox using RSelenium使用rselenium在Firefox中设置地理位置
【发布时间】:2020-12-28 16:27:11
【问题描述】:

我在我的 EC2 服务器上为多个项目使用 RSelenium。
我正在尝试在我的 Firefox 配置文件的参数中自动设置位置,但我不确定在哪里以及如何包含它们。
我会假设在 makeFirefoxProfile 函数的某个地方,但我不确定。

fprof <- makeFirefoxProfile(list("?"))

remDr <- remoteDriver(remoteServerAddr = "ec2-XX-XX-XXX-XX.eu-west-3.compute.amazonaws.com", port = 4445L, extraCapabilities = fprof)

remDr$open()

知道该怎么做吗?谢谢!

[编辑 1]: 我的 Firefox 个人资料信息似乎位于此文件夹中:

【问题讨论】:

  • 你会考虑用 Java 和 Chrome 来回答吗?
  • 你知道我如何将它与 R 集成吗?
  • 我只能通过适用于 Chrome 的 Java 为您提供这个想法。我相信你可以很容易地为 R 和 Firefox 实现相同的功能。

标签: r selenium firefox selenium-chromedriver rselenium


【解决方案1】:

改用以下方法(它对我有用)。我使用 args 额外功能将配置文件目录传递给驱动程序:

remDr <- remoteDriver(remoteServerAddr = "ec2-XX-XX-XXX-XX.eu-west-3.compute.amazonaws.com", port = 4445L, extraCapabilities = list("args", "--profile /your/profile/directory"))

【讨论】:

  • 嗨 Bertold,我在帖子中添加了一些信息。我将整个配置文件文件夹复制到我的服务器并更新了位置。但没有任何改变,我怎么才能知道这个 Firefox 配置文件目录中的位置信息?
  • 嗨@ML_Enthousiast - 当您在 R 中执行上述命令时,它将回显配置文件的位置。 Firefox 配置文件是否可能无法在 Windows 和 Linux 映像之间传输?还是您的 AWS 实例也在运行 Windows?
  • 我尝试先放置本地目录,然后再放置根目录,但对于这两个目录,我都没有看到任何变化。我的 AWS 实例在 Linux 上运行
  • 您是否尝试过使用本地实例?可以检查 RSelenium 如何调用壁虎驱动程序。
【解决方案2】:

使用ChromeDriver for 可以轻松实现自动设置位置。

Chrome 开发工具

Selenium 4 alpha 版本通过DevTools 接口向我们介绍了对 Chrome DevTools Protocol 的原生支持,这有助于我们获得 Chrome 开发属性,例如应用程序缓存、Fetch、网络、性能、Profiler、资源时序、安全性和目标 CDP 域等。

要在 Chrome 浏览上下文中设置位置,您可以使用以下解决方案:

  • 解决办法:

    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.devtools.DevTools;
    
    public void geoLocationTest(){
      ChromeDriver driver = new ChromeDriver();
      Map coordinates = new HashMap()
      {{
          put("latitude", 50.2334);
          put("longitude", 0.2334);
          put("accuracy", 1);
      }};    
      driver.executeCdpCommand("Emulation.setGeolocationOverride", coordinates);
      driver.get("ec2-XX-XX-XXX-XX.eu-west-3.compute.amazonaws.com");
    } 
    

【讨论】:

  • 谢谢,但你知道我如何将它集成到 R 中吗?
  • @ML_Enthousiast 让我看看我能不能拿出一些相关的东西。我会及时通知你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 2018-03-17
  • 1970-01-01
  • 2020-01-23
  • 2023-04-02
相关资源
最近更新 更多