首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Chrome DevTools中自动切换传感器/位置以进行自动化测试?

如何在Chrome DevTools中自动切换传感器/位置以进行自动化测试?
EN

Stack Overflow用户
提问于 2020-06-22 06:16:07
回答 1查看 678关注 0票数 0

上下文

我想使用Selenium编写自动化测试。我的页面应该根据用户的位置正确工作。我希望根据用户的位置断言不同的结果。

我想使用Chrome的传感器/位置设施来模拟不同的位置。

问题

如何根据测试用例从一个位置切换到另一个位置?(我使用的是C#代码中的Selenium Chrome驱动程序,但希望这不重要)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-24 04:35:58

为了设置纬度和经度,可以使用Chrome工具中的Emulation.setGeolocationOverride

有关C# Selenium绑定,请参阅SetGeolocationOverrideCommand.cs

根据我的经验,您可能需要在调用Emulation.setGeolocationOverride之后添加一些等待。因为它没有立即反映出来。

在Java示例代码中:

代码语言:javascript
运行
复制
DevTools devTools = driver.getDevTools();
devTools.createSession();
devTools.send(Emulation.setGeolocationOverride(Optional.of(35.689487), Optional.of(139.691706), Optional.of(100)))

在Selenium/Chromedriver日志中,它将可见,如下所示:

代码语言:javascript
运行
复制
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添加下面的依赖项

代码语言:javascript
运行
复制
<!-- 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提供给站点

代码语言:javascript
运行
复制
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.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62508426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档