博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Selenium] HTML5 中的 Geolocation
阅读量:6239 次
发布时间:2019-06-22

本文共 1730 字,大约阅读时间需要 5 分钟。

在 HTML5 ,新特性 Geolocation 用于定位用户位置信息。

由于用户位置信息是敏感信息,所以需要得到用户允许后,才能让程序通过 API  获取当前用户信息。WebDriver 程序每次重新允许都是新的会话进程,及时之前在浏览器中已经通过手工方式运行浏览器访问用户的位置信息,但在当前运行环境中依旧无法获取之前用户设置。解决方法是让浏览器每次执行 WebDriver 测试程序时,依旧加载之前用户设置即可。

以Firefox 为例,在Mac OS 平台上,可通过如下命令打开用户 Profile 管理器

$ /Applications/Firefox.app/Contents/MacOS/firefox-bin -ProfileManager

其他平台打开方式查询官方开发者文档:

https://developer.mozilla.org/en-US/docs/Mozilla/Multiple_Firefox_Profiles

创建 geolocation Profile 成功后,单击 Start Firefox 启动 Firefox 浏览器。

 

以 http://www.weschools.com/html/html5_geolocation.asp 为例。为演示完整的示例代码,还需创建一个包含 Geolocation 信息的 JSON 文件,这里命名为 location.json,内容如下:

{

  "status":"OK",

  "accuracy":10.0,

  "location":{"lat":52.1771129, "lng":5.4}

}

示例:

package com.learningselenium.html5;

 

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.firefox.FirefoxProfile;

import org.openqa.selenium.firefox.internal.Profileslni;

import  org.testng.annotations.*;

 

public class testHTML5Geolocation{

  private static WebDriver driver;

 

  @BeforeClass

  public void setUp() throws Exception{

    //获取geolocation Profile

    FirefoxProfile profile = new Profileslni().getProfile("geolocation");

    //配置Geolocation 信息

    profile.setPreference("geo.wifi.uri", "/Selenium 2/mydoc/codes/4/location.json");

    //通过定制 profile 启动浏览器

    driver = new FirefoxDriver(profile);

    driver.get("http://www.weschools.com/html/html5_geolocation.asp");

  }

 

  @Test

  public void testGetLocation() throws Exception{

    driver.findElement(By.cssSelector("p#demo button")).click();

  }

 

  @AfterClass

  public void tearDown() throws Exception{

    driver.quit();

  }

}

转载于:https://www.cnblogs.com/feifeidxl/p/4554800.html

你可能感兴趣的文章
Tornado 5.1渲染模板
查看>>
PDF转换成Word确保内容排版和转换质量
查看>>
一些关于写Java代码的建议
查看>>
关于使用 dup2 函数重定向的一些疑问
查看>>
使用python语言操作MongoDB
查看>>
直连和静态
查看>>
javascript学习记录-数组(4) 2014/02/21
查看>>
HAProxy安装使用
查看>>
Serving websites from svn checkout considered harmful
查看>>
Java中Split函数的用法技巧
查看>>
iOS
查看>>
xenserver introduce “Local Storage”
查看>>
25万个虚拟机的实验环境 -VMworld 2011 动手实验室内幕曝光
查看>>
Supporting Python 3——不使用2to3转换支持Python 2和Python 3
查看>>
分布式存储系统MogileFS(一)之基本概念
查看>>
Zabbix宏使用及用户自定义监控
查看>>
网络社交如何保护个人隐私?做好这4步
查看>>
mysqlbinlog 命令筛选时间段某表操作记录
查看>>
python 简单擦错误记录
查看>>
css float
查看>>