Ruby/Watir 禁用保存密码提示
Ruby/Watir disable Save password prompt
此问题与 chrome 中使用 Rubymine、Watir 和 Selenium 的自动化测试有关。
我们如何禁止它在 Chrome
中弹出
这些是我们当前的chrome驱动程序选项
options = Selenium::WebDriver::Chrome::Options.new(
options: {"excludeSwitches" => ["enable-automation", "load-extension"]},
args: ["ignore-certificate-errors", "disable-infobars"]
)
options.add_preference(:credentials_enable_service, false)
options.add_preference(:password_manager_enabled, false)
driver = Selenium::WebDriver.for :chrome, options: options
好吧,我告诉你一个办法。所以现在我们的目标是按下 Never
按钮,浏览器必须记住该选择,因此它不会再次询问您。所以我们在这里要做的是,我们必须单击 Never
并保存在程序加载的配置文件中。照我说的做。允许此弹出窗口显示并知道它在程序中的哪一行,在那一行之后,只需暂时写入 sleep 20 秒后您就可以删除此语句。一旦程序到达这里,它会等你 20 秒,所以手动按下永不按钮现在这个选择将存储在配置文件程序加载中,所以下次程序加载时它不会询问你。当你下次 运行 时,删除这个 sleep 20.
使用首选项
您设置的首选项正确。问题是您 运行 遇到了 Selenium-WebDriver 中的错误 - https://github.com/SeleniumHQ/selenium/issues/7917.
在修复发布之前,您需要使用字符串作为首选项而不是符号:
options.add_preference("credentials_enable_service", false)
options.add_preference("password_manager_enabled", false)
请注意,您不需要直接创建 Selenium 选项。您可以让 Watir 为您做这件事:
browser = Watir::Browser.new(
:chrome,
options: {
options: {"excludeSwitches" => ["enable-automation", "load-extension"]},
args: ["ignore-certificate-errors", "disable-infobars", '--disable-features=RendererCodeIntegrity'],
prefs: {"credentials_enable_service" => false, "password_manager_enabled" => false}
}
)
使用隐身模式
或者,您可以使用隐身模式而不是设置首选项:
options = Selenium::WebDriver::Chrome::Options.new(
options: {"excludeSwitches" => ["enable-automation", "load-extension"]},
args: ["incognito", "ignore-certificate-errors", "disable-infobars"]
)
此问题与 chrome 中使用 Rubymine、Watir 和 Selenium 的自动化测试有关。 我们如何禁止它在 Chrome
中弹出这些是我们当前的chrome驱动程序选项
options = Selenium::WebDriver::Chrome::Options.new(
options: {"excludeSwitches" => ["enable-automation", "load-extension"]},
args: ["ignore-certificate-errors", "disable-infobars"]
)
options.add_preference(:credentials_enable_service, false)
options.add_preference(:password_manager_enabled, false)
driver = Selenium::WebDriver.for :chrome, options: options
好吧,我告诉你一个办法。所以现在我们的目标是按下 Never
按钮,浏览器必须记住该选择,因此它不会再次询问您。所以我们在这里要做的是,我们必须单击 Never
并保存在程序加载的配置文件中。照我说的做。允许此弹出窗口显示并知道它在程序中的哪一行,在那一行之后,只需暂时写入 sleep 20 秒后您就可以删除此语句。一旦程序到达这里,它会等你 20 秒,所以手动按下永不按钮现在这个选择将存储在配置文件程序加载中,所以下次程序加载时它不会询问你。当你下次 运行 时,删除这个 sleep 20.
使用首选项
您设置的首选项正确。问题是您 运行 遇到了 Selenium-WebDriver 中的错误 - https://github.com/SeleniumHQ/selenium/issues/7917.
在修复发布之前,您需要使用字符串作为首选项而不是符号:
options.add_preference("credentials_enable_service", false)
options.add_preference("password_manager_enabled", false)
请注意,您不需要直接创建 Selenium 选项。您可以让 Watir 为您做这件事:
browser = Watir::Browser.new(
:chrome,
options: {
options: {"excludeSwitches" => ["enable-automation", "load-extension"]},
args: ["ignore-certificate-errors", "disable-infobars", '--disable-features=RendererCodeIntegrity'],
prefs: {"credentials_enable_service" => false, "password_manager_enabled" => false}
}
)
使用隐身模式
或者,您可以使用隐身模式而不是设置首选项:
options = Selenium::WebDriver::Chrome::Options.new(
options: {"excludeSwitches" => ["enable-automation", "load-extension"]},
args: ["incognito", "ignore-certificate-errors", "disable-infobars"]
)