如何通过硒测试用例启用或禁用地理位置



我想通过单击该弹出窗口的允许按钮来允许/阻止我当前的位置访问站点,我的 chrome 版本是 62.0,chrome 驱动程序版本是 3.6.0,我使用的是 ubuntu 16.04,我的代码片段是,

ChromeOptions options = new ChromeOptions();
options.addArguments("--incognito");
options.addArguments("start-maximized");
options.addArguments("--disable-geolocation");
DesiredCapabilities capabilities=DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY,options);
driver = new ChromeDriver(capabilities);

但这不起作用,谁能建议我完美的解决方案?

Robot r = new Robot();
r.keyPress(KeyEvent.VK_TAB);
r.keyRelease(KeyEvent.VK_TAB);
r.keyPress(KeyEvent.VK_TAB);
r.keyRelease(KeyEvent.VK_TAB);
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);

为此使用java.awt.Robot类,首先手动测试,然后您可以根据需要更改密钥处理程序。

对于那些寻找一种无需机器人的方法的人来说,您可以使用以下选项来做到这一点:要拒绝,请将profile.default_content_setting_values.geolocation设置为1,自动接受设置为2(这似乎是当前的默认设置(

    ChromeOptions options = new ChromeOptions();
    
    ArrayList<String> opArgList = new ArrayList<>(); // using an array list (so we can extend it with other passed in options)
    opArgList.add("--no-sandbox");
    opArgList.add("--disable-dev-shm-usage");
    String[] opArg = opArgList.toArray(new String[0]);
        
    HashMap<String, Object> prefs = new HashMap<String, Object>();
    prefs.put("profile.default_content_setting_values.geolocation", 1); 
    options.setExperimentalOption("prefs", prefs);
    options.addArguments(opArg); 
    driver = new RemoteWebDriver(new URL("http://localhost:4444/"), options);

最新更新