如何在Java+TestNG中设置ChromeDriver的Insecure origins treated as secure
解决ChromeDriver中"Insecure origins treated as secure"的Java配置问题
首先明确:Chrome设置里的"Insecure origins treated as secure"对应的实际命令行参数是--unsafely-treat-insecure-origin-as-secure。你之前尝试的IDE命令行参数无效,是因为那是传给JVM的,而非Chrome进程的启动参数,必须通过ChromeOptions来配置。
以下是Java+TestNG环境下的具体实现代码:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class GpsLocationTest { private WebDriver driver; @BeforeTest public void setup() { // 初始化ChromeOptions对象 ChromeOptions options = new ChromeOptions(); // 添加目标不安全源到信任列表,替换成你的测试网站URL String targetUrl = "http://your-test-site.com"; options.addArguments("--unsafely-treat-insecure-origin-as-secure=" + targetUrl); // 允许地理位置权限(GPS定位必须依赖这个权限) options.addArguments("--geolocation"); // 可选:模拟固定定位(替换成需要的经纬度) // options.addArguments("--use-fake-location"); // options.addArguments("--fake-geolocation-latitude=39.9042"); // options.addArguments("--fake-geolocation-longitude=116.4074"); // 用配置好的Options启动ChromeDriver driver = new ChromeDriver(options); } @Test public void testGpsLocation() { driver.get("http://your-test-site.com"); // 这里添加你的GPS定位功能测试逻辑 } @AfterTest public void teardown() { if (driver != null) { driver.quit(); } } }
关键注意点:
- 参数必须和目标URL用
=连接,不能拆分添加 - 仅当测试网站为HTTP协议时需要此配置,Chrome默认限制非HTTPS源调用定位API
- 若需要跳过手动授权定位,可以启用注释里的假位置参数
内容的提问来源于stack exchange,提问作者Swaroop Humane
相关产品推荐
相关产品推荐

