如何使用Selenium Webdriver for JavaScript在Chrome中接受不安全的证书?

如何使用Selenium Webdriver for JavaScript在Chrome中接受不安全的证书?,javascript,asynchronous,selenium-webdriver,selenium-chromedriver,selenium-ide,Javascript,Asynchronous,Selenium Webdriver,Selenium Chromedriver,Selenium Ide,我已经使用Selenium IDE生成了测试脚本。这是一种Javascript摩卡咖啡。我有一个可以在本地测试的环境。 因此,我正在访问一个有不安全证书问题的远程url 我需要修改生成的用于chrome功能的TestScript以接受不安全的证书。 我找不到任何关于JavaScript的官方文档,也找不到任何好的博客或答案 以下是生成的测试脚本: // Generated by Selenium IDE const { Builder, By, Key, until } = r

我已经使用Selenium IDE生成了测试脚本。这是一种Javascript摩卡咖啡。我有一个可以在本地测试的环境。 因此,我正在访问一个有不安全证书问题的远程url

我需要修改生成的用于chrome功能的TestScript以接受不安全的证书。 我找不到任何关于JavaScript的官方文档,也找不到任何好的博客或答案

以下是生成的测试脚本:

// Generated by Selenium IDE

const {
  Builder,
  By,
  Key,
  until
} = require('selenium-webdriver')
const assert = require('assert')

describe('work', function() {
  this.timeout(30000)
  let driver
  let vars


  beforeEach(async function() {
    driver = await new Builder().forBrowser('chrome').build()
    vars = {}
  })

  afterEach(async function() {
    driver = await new Builder().forBrowser('chrome').build()
    await driver.quit();
  })
  it('work', async function() {
    await driver.get("https://kwras.eu.company.com:10016/front/v9/signin")
    await driver.manage().window().setRect(704, 584)
    await driver.findElement(By.id("prod-signin-basic-signin-form-username")).sendKeys("srishti")
    await driver.findElement(By.id("prod-signin-basic-signin-form-password")).sendKeys("srpass")
    await driver.findElement(By.id("ui-id-1")).click()
    await driver.findElement(By.css(".icon-ham-menu")).click() {
      const element = await driver.findElement(By.css(".icon-ham-menu"))
      await driver.actions({
        bridge: true
      }).moveToElement(element).perform()
    } {
      const element = await driver.findElement(By.CSS_SELECTOR, "body")
      await driver.actions({
        bridge: true
      }).moveToElement(element, 0, 0).perform()
    }
    await driver.findElement(By.css("#ui-id-17 > .oj-navigationlist-item-label")).click() {
      const element = await driver.findElement(By.css("#ui-id-17 > .oj-navigationlist-item-label"))
      await driver.actions({
        bridge: true
      }).moveToElement(element).perform()
    }
    await driver.executeScript("window.scrollTo(0,0)") {
      const element = await driver.findElement(By.CSS_SELECTOR, "body")
      await driver.actions({
        bridge: true
      }).moveToElement(element, 0, 0).perform()
    }
    await driver.findElement(By.css("#ui-id-34 > .oj-navigationlist-item-label")).click() {
      const element = await driver.findElement(By.css("#ui-id-34 > .oj-navigationlist-item-label"))
      await driver.actions({
        bridge: true
      }).moveToElement(element).perform()
    }
    await driver.executeScript("window.scrollTo(0,0)") {
      const element = await driver.findElement(By.CSS_SELECTOR, "body")
      await driver.actions({
        bridge: true
      }).moveToElement(element, 0, 0).perform()
    }
    await driver.findElement(By.css("#ui-id-49 > .oj-navigationlist-item-label")).click() {
      const element = await driver.findElement(By.css("#ui-id-49 > .oj-navigationlist-item-label"))
      await driver.actions({
        bridge: true
      }).moveToElement(element).perform()
    } {
      const element = await driver.findElement(By.CSS_SELECTOR, "body")
      await driver.actions({
        bridge: true
      }).moveToElement(element, 0, 0).perform()
    }
    await driver.findElement(By.id("ui-id-55")).click() {
      const element = await driver.findElement(By.id("ui-id-55"))
      await driver.actions({
        bridge: true
      }).moveToElement(element).perform()
    }
    await driver.executeScript("window.scrollTo(0,0)")
    await driver.findElement(By.css("#searchData\\3A_hdrCol0_-2063926153_2 > #dottedMenu .oj-button-label > .demo-icon")).click() {
      const element = await driver.findElement(By.css("#searchData\\3A_hdrCol0_-2063926153_2 > #dottedMenu .oj-button-label > .demo-icon"))
      await driver.actions({
        bridge: true
      }).moveToElement(element).perform()
    } {
      const element = await driver.findElement(By.CSS_SELECTOR, "body")
      await driver.actions({
        bridge: true
      }).moveToElement(element, 0, 0).perform()
    }
    await driver.findElement(By.css("#ui-id-63 > span")).click()
    await driver.findElement(By.css("#oj-collapsible-Identification-header > .font16")).click()
    await driver.findElement(By.css("#oj-collapsible-Brand-header > .font16")).click()
    await driver.findElement(By.css("#oj-collapsible-Dates-header > .oj-component-icon")).click()
  })
})
我尝试以以下方式进行修改(注释行是我修改的代码):

但我得到了以下错误:

如何使用Javascript for selenium webdriver添加接受不安全ssl证书的chrome功能?任何指向使用SeleniumWebDriver实现Javascript功能的官方文档的链接都将非常有用

谢谢

更新: 根据@balint的建议,我更新了初始化生成器的方式,如下所示:

var chromeCapabilities = Capabilities.chrome();
chromeCapabilities. setAcceptInsecureCerts(true);
var driver = new Builder().withCapabilities(chromeCapabilities).build();

关键部分是
setacceptsecurecerts
,这是我在中找到的方法。尽管如此,测试仍然无法接受不安全的证书并转到网站。

试试这个,它对我有效

var chromeCapabilities = Capabilities.chrome();
chromeCapabilities.set("acceptInsecureCerts", true);
var driver = new Builder().withCapabilities(chromeCapabilities).build();

我想这回答了你的问题:@balint谢谢,我确实看到了这个答案。我需要一个类似于Python代码的JavaScript。另外,也没有官方的JavaScript文档可供我参考。作为我自己的参考,使用JS For selenium的文档:但它明确指出,必须向构建器添加一些参数才能使其正常工作。您可以尝试为headless chrome实例注入类似命令的参数,但Selenium builder有setChromeOptions(),options有setAcceptInsureCerts()函数:@balint Hi,请查看我的更新。
var chromeCapabilities = Capabilities.chrome();
chromeCapabilities.set("acceptInsecureCerts", true);
var driver = new Builder().withCapabilities(chromeCapabilities).build();