我已经有一段时间试图找到一种自动接受SSL证书的方法。但遗憾的是没有运气。所以,在这种情况下,我正在进行硒测试。而且,每当我在chrome上运行测试时,会出现一个小弹出窗口,要求选择证书。
我在python中试过这个:How to deal with certificates using Selenium?
我也试过(在javascript中):
var options = new chrome.Options();
options.addArguments(" - 忽略-证书错误&#34)
但它似乎不起作用!
在firefox中,有一个选项可以自动选择证书。有没有办法在selenium或chrome设置中自动选择证书?硒中的ENTER / RETURN键会起作用吗?
编辑:以下是我的代码。这是正确的使用方式吗?
var launch = function(){
var options = new chrome.Options();
options.addArguments("--test-type");
/* Also tried options.addArguments(“--ignore-certificate-errors")
*/
var driver = new webdriver.Builder()
.usingServer('http://127.0.0.1:4444/wd/hub')
.setChromeOptions(options)
.build();
driver.get(url)
}
P.S在这里,我使用JavaScript。
答案 0 :(得分:1)
ACCEPT_SSL_CERTS
是浏览器的理想功能之一,它告诉浏览器默认情况下接受/拒绝ssl证书。
以下是用于接受Chrome中的SSL证书的示例代码:
DesiredCapabilities cap=DesiredCapabilities.chrome();
// Set ACCEPT_SSL_CERTS variable to true
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
// Set the driver path
System.setProperty("webdriver.chrome.driver","Chrome driver path");
// Open browser with capability
WebDriver driver=new ChromeDriver(cap);
答案 1 :(得分:0)
这是高于80版的Chrome版本的主要问题。 我当前正在使用版本84.0.4147.105,它将不接受或忽略SSL证书。 要做的一件事是将Chrome版本降级到v.80以下,特别是对于那些在本地Host应用程序中构建测试用例的人。
答案 2 :(得分:-1)
chrome_options = ChromeOptions()
chrome_options.add_argument('--lang='+language)
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--allow-running-insecure-content')
chrome_options.add_argument('--disable-web-security')
chrome_options.add_experimental_option('useAutomationExtension', False)
if headless :
chrome_options.set_headless()
if remote :
self.driver = webdriver.Remote(command_executor=wd,desired_capabilities=chrome_options.to_capabilities(),options=chrome_options)
else:
self.driver = webdriver.Chrome(desired_capabilities=chrome_options.to_capabilities(),options=chrome_options)