如何使用selenium webdriver处理浏览器中的地理位置弹出窗口?

如何使用selenium webdriver处理浏览器中的地理位置弹出窗口?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,单击弹出窗口上的“共享位置”按钮,我想共享我的位置。如何使用SeleniumWebDriver处理此问题?请参阅下图 到达位置弹出窗口的步骤: 导航到 单击右侧部分的尝试按钮 位置弹出窗口将显示为: 因此,如果要启动任何站点,出现此地理位置弹出窗口,您无法与此元素交互,因为它不是WebElement,因此您必须在浏览器启动站点之前处理它,因此,以下是启动浏览器所需的属性:- 对于Firefox: FirefoxProfile geoDisabled = new FirefoxProfile()

单击弹出窗口上的“共享位置”按钮,我想共享我的位置。如何使用SeleniumWebDriver处理此问题?请参阅下图

到达位置弹出窗口的步骤:

  • 导航到
  • 单击右侧部分的
    尝试
    按钮
  • 位置弹出窗口将显示为:


  • 因此,如果要启动任何站点,出现此
    地理位置
    弹出窗口,您无法与此元素交互,因为它不是
    WebElement
    ,因此您必须在浏览器启动站点之前处理它,因此,以下是启动浏览器所需的属性:-

    对于Firefox:

    FirefoxProfile geoDisabled = new FirefoxProfile();
    geoDisabled.setPreference("geo.enabled", false);
    geoDisabled.setPreference("geo.provider.use_corelocation", false);
    geoDisabled.setPreference("geo.prompt.testing", false);
    geoDisabled.setPreference("geo.prompt.testing.allow", false);
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability(FirefoxDriver.PROFILE, geoDisabled);
    driver = new FirefoxDriver(capabilities);
    
    ChromeOptions options = new ChromeOptions();
    options.addArguments("start-maximized");
    options.addArguments("test-type");
    options.addArguments("enable-strict-powerful-feature-restrictions");
    options.addArguments("disable-geolocation");
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    cap = cap.merge(DesiredCapabilities.chrome());
    driver = new ChromeDriver(cap);
    
    对于铬:

    FirefoxProfile geoDisabled = new FirefoxProfile();
    geoDisabled.setPreference("geo.enabled", false);
    geoDisabled.setPreference("geo.provider.use_corelocation", false);
    geoDisabled.setPreference("geo.prompt.testing", false);
    geoDisabled.setPreference("geo.prompt.testing.allow", false);
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    capabilities.setCapability(FirefoxDriver.PROFILE, geoDisabled);
    driver = new FirefoxDriver(capabilities);
    
    ChromeOptions options = new ChromeOptions();
    options.addArguments("start-maximized");
    options.addArguments("test-type");
    options.addArguments("enable-strict-powerful-feature-restrictions");
    options.addArguments("disable-geolocation");
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    cap = cap.merge(DesiredCapabilities.chrome());
    driver = new ChromeDriver(cap);
    
    希望有帮助

        FirefoxProfile geoDisabled = new FirefoxProfile();
        geoDisabled.setPreference("geo.enabled", false);
        geoDisabled.setPreference("geo.provider.use_corelocation", false);
        geoDisabled.setPreference("geo.prompt.testing", false);
        geoDisabled.setPreference("geo.prompt.testing.allow", false);
        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability(FirefoxDriver.PROFILE, geoDisabled);
    
        WebDriver driver;
        System.setProperty("Driver_Name", "Driver_path");
        driver =new FirefoxDriver(geoDisabled);
    

    需要传递FirefoxProfile的实例。

    要删除此弹出窗口可能存在重复项?@SaurabhGaur:我目前正在处理电子商务项目,任何用户都已登录,必须检查当前位置。这就是为什么我需要处理这个弹出窗口?那么,如何在弹出窗口中单击“共享位置”按钮?@SameerD这是selenium无法单击的
    Share Location
    按钮,您需要使用允许共享位置创建自定义配置文件,例如information@pArAs:我想删除此弹出窗口,但是使用SeleniumWebDriver。需要添加功能作为FirefoxDriver实例的参数。谢谢,我在任何地方都找不到这个!我找不到任何关于如何在NodeJS中实现这一点的好文档。另外,我正在寻找如何处理通知权限(而不是地理位置)