上下文
我想使用Selenium编写自动化测试。我的页面应该根据用户的位置正确工作。我希望根据用户的位置断言不同的结果。
我想使用Chrome的传感器/位置设施来模拟不同的位置。
问题
如何根据测试用例从一个位置切换到另一个位置?(我使用的是C#代码中的Selenium Chrome驱动程序,但希望这不重要)
发布于 2020-06-24 04:35:58
为了设置纬度和经度,可以使用Chrome工具中的Emulation.setGeolocationOverride
。
有关C# Selenium绑定,请参阅SetGeolocationOverrideCommand.cs
根据我的经验,您可能需要在调用Emulation.setGeolocationOverride之后添加一些等待。因为它没有立即反映出来。
在Java示例代码中:
DevTools devTools = driver.getDevTools();
devTools.createSession();
devTools.send(Emulation.setGeolocationOverride(Optional.of(35.689487), Optional.of(139.691706), Optional.of(100)))
在Selenium/Chromedriver日志中,它将可见,如下所示:
Jun 23, 2020 4:47:28 PM org.openqa.selenium.devtools.Connection send
INFO: {
"id": 7,
"method": "Emulation.setGeolocationOverride",
"params": {
"latitude": 35.689487,
"longitude": 139.691706,
"accuracy": 100
},
"sessionId": "SDSFDF3243423434DFDFD"
}
在Java中,如果您在pom.xml中使用maven添加下面的依赖项
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-devtools -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-devtools</artifactId>
<version>4.0.0-alpha-5</version>
</dependency>
注意:地理定位许可可以使用Browser.grantPermissions提供给站点
Browser.grantPermissions EXPERIMENTAL #
Grant specific permissions to the given origin and reject all others.
PARAMETERS
permissions
array[ PermissionType ]
origin
string
Origin the permission applies to, all origins if not specified.
https://stackoverflow.com/questions/62508426
复制相似问题