C#Selenium chromedriver单击“允许在此设备上存储文件”

时间:2019-02-18 21:22:05

标签: c# .net selenium google-chrome

enter image description here

嗨。 如何单击“允许”按钮?我真的在互联网上找不到任何解决方案。我不想使用c ++挂钩或按坐标模拟鼠标单击。有什么好方法可以允许此通知吗?

new ChromeOptions.AddUserProfilePreference("profile.default_content_setting_values.automatic_downloads", 2);

没有帮助

3 个答案:

答案 0 :(得分:4)

找到了两个解决方案:

1)感谢@Floren的回答:C# selenium chromedriver click on Allow store files on this device

有一个关于铬4.20.11的论点

Chromium源代码参考:

--unlimited-storage

C#用法:

// Overrides per-origin quota settings to unlimited storage for any
// apps/origins.  This should be used only for testing purpose.
const char kUnlimitedStorage[] = "unlimited-storage";



# Prevent the infobar that shows up when requesting filesystem quota.
    '--unlimited-storage',

2)@Simon Mourier的回答C# selenium chromedriver click on Allow store files on this device

使用.NET UIAutomation单击“允许”按钮

var chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--unlimited-storage");
var driver = new ChromeDriver(chromeOptions);

答案 1 :(得分:3)

您不能,这是操作系统级别的对话,而不是DOM中的内容。

解决该问题的方法是使用所需功能将chrome配置为不显示此对话框。

我将建议

ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("download.prompt_for_download", 0);
options.AddUserProfilePreference("settings.labs.advanced_filesystem", 1);

如果AddUserProfilePreference不起作用的话,其他可能添加选项的命令是:

  • AddLocalStatePreference
  • AddAdditionalChromeOption
  • AddAdditionalCapability

有关所需功能和镶边的更多详细信息,请查看:

答案 2 :(得分:3)

        var chromeOptions = new ChromeOptions();
        var downloadDirectory = @"C:\Users\";



        chromeOptions.AddUserProfilePreference("download.default_directory", downloadDirectory);
        chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
        chromeOptions.AddUserProfilePreference("disable-popup-blocking", "true");


        chromeOptions.AddUserProfilePreference("profile.default_content_setting_values.automatic_downloads", 1);

        IWebDriver _driver = new ChromeDriver(chromeOptions);

您可以尝试这个吗?