如何解决使用RSelenium在Firefox中设置地理位置
我正在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个人资料信息似乎位于此文件夹中:
解决方法
尝试以下方法(对我有用)。我使用了args的额外功能来将配置文件目录传递给驱动程序:
remDr <- remoteDriver(remoteServerAddr = "ec2-XX-XX-XXX-XX.eu-west-3.compute.amazonaws.com",port = 4445L,extraCapabilities = list("args","--profile /your/profile/directory"))
,
使用selenium4的ChromeDriver和google-chrome-devtools到google-chrome,可以轻松实现自动设置位置。
Chrome Devtools
Selenium 4 alpha版本通过DevTools接口向我们介绍了对 Chrome DevTools协议的本机支持,这有助于我们获取Chrome开发属性,例如应用程序缓存,提取,网络,性能,探查器,资源定时,安全性和目标CDP域等。
要在 Chrome浏览上下文中中设置位置,可以使用以下解决方案:
-
java解决方案:
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"); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。