我正在使用chromedriver.exe
二进制文件在Google Chrome中运行我的测试。在一个特定页面,这个弹出窗口不会干预/影响测试,但客户端不希望看到它。可能的原因可能是,在测试用例失败的情况下,它会捕获屏幕截图以及弹出窗口。
如何创建会禁用此弹出框的profile
或capabilities
?
这样的事情:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data");
修改
此代码停止弹出“知道您的位置”,但生成了另一个弹出窗口。所以它只是部分工作。
options.addArguments("--enable-strict-powerful-feature-restrictions");
driver = new ChromeDriver(options);
答案 0 :(得分:3)
使用--disable-geolocation
,Chrome选项如下:
options.addArguments("--disable-geolocation");
还可以在以下链接中找到chrome命令行开关列表:
答案 1 :(得分:1)
此代码解决了我的地理定位问题
options.AddUserProfilePreference("profile.default_content_setting_values.geolocation", 2);
答案 2 :(得分:0)
添加以下命令行参数,这将限制地理定位功能。
String url = "http://ctrlq.org/maps/where/";
//Chromedriver Version : 2.19.346078
System.setProperty("webdriver.chrome.driver", "CHROMEDRIVERPATH");
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--enable-strict-powerful-feature-restrictions");
WebDriver driver = new ChromeDriver(options);
driver.get(url);
另一种方式是在推出Chrome浏览器后,通过下面的selenium代码工具将禁用地理位置弹出窗口。
转到:chrome:// settings / content
在该位置选择'不允许任何网站跟踪您的实际位置'选项。
答案 3 :(得分:0)
以下列方式声明对我有用。
// Declare variables
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
Map<String, Object> profile = new HashMap<String, Object>();
Map<String, Object> contentSettings = new HashMap<String, Object>();
// Specify the ChromeOption we need to set
contentSettings.put(“geolocation”, 1);
profile.put(“managed_default_content_settings”, contentSettings);
prefs.put(“profile”, profile);
options.setExperimentalOption(“prefs”, prefs);
// Declare the capability for ChromeOptions
caps.setCapability(ChromeOptions.CAPABILITY, options);
答案 4 :(得分:0)
--disable-geolocation
标志对我没有任何作用。
我也在隐身模式下运行,所以这可能会影响某些事情。
我可以确认以下 python selenium 代码将禁用位置弹出窗口
prefs = {
"profile.default_content_setting_values.geolocation": 2,
}
options.add_experimental_option("prefs", prefs)
为了深入挖掘。 如果您需要更改任何设置。可以通过比较保存的“${PROFILE}Preferences”文件来完成
我建议总是从一个干净的配置文件开始,如下所示,然后在代码中设置您想要的任何首选项。以获得可重复的结果。
data_dir = "tmp/remote-profile"
if os.path.exists(data_dir):
shutil.rmtree(data_dir)
options.add_argument("--user-data-dir=tmp/remote-profile")
options.add_argument('--profile-directory=Default')
在上述情况下,首选项文件将位于 tmp/remote-profile/Default/Preferences