ruby - 在 Cucumber Ruby 中使用 Selenium ChromeDriver 在 W3C 模式下无法调用非 W3C 标准命令 (Selenium::WebDriver::Error::UnknownCommandError)

标签 ruby selenium google-chrome selenium-chromedriver webdriver-w3c-spec

我们有 Cucumber Ruby 自动化框架,我们在 Jenkins 上的 Docker 中的 Chrome headless 浏览器上运行了一些测试。几天前,我们开始收到错误“此版本的 ChromeDriver 仅支持 Chrome 版本 75”,这次我们使用 ChromeDriver 2.46 并使用 google-chrome-unstable 浏览器,使用以下命令:

#Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list
RUN apt-get update -y
RUN apt-get install -y google-chrome-unstable
RUN apt-get install unzip

# Set up Chromedriver Environment variables
ENV CHROMEDRIVER_VERSION 2.46
ENV CHROMEDRIVER_VERSION 75.0.3770.8
ENV CHROMEDRIVER_DIR /chromedriver
RUN mkdir $CHROMEDRIVER_DIR
# Download and install Chromedriver
RUN wget -q --continue -P $CHROMEDRIVER_DIR "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip"
RUN unzip $CHROMEDRIVER_DIR/chromedriver* -d $CHROMEDRIVER_DIR
ENV PATH $CHROMEDRIVER_DIR:$PATH

我现已将 chromedriver 版本更新为 75.0.3770.8,并将浏览器版本更新为 google-chrome-beta=75.0.3770.27-1

#Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list
RUN apt-get update -y
RUN apt-get install -y google-chrome-beta=75.0.3770.27-1
RUN apt-get install unzip

# Set up Chromedriver Environment variables
ENV CHROMEDRIVER_VERSION 75.0.3770.8
ENV CHROMEDRIVER_DIR /chromedriver
RUN mkdir $CHROMEDRIVER_DIR
RUN echo $CHROMEDRIVER_DIR
# Download and install Chromedriver
RUN wget -q --continue -P $CHROMEDRIVER_DIR "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip"
RUN unzip $CHROMEDRIVER_DIR/chromedriver* -d $CHROMEDRIVER_DIR
ENV PATH $CHROMEDRIVER_DIR:$PATH

现在我可以看到错误为:

unknown command: Cannot call non W3C standard command while in W3C mode (Selenium::WebDriver::Error::UnknownCommandError)

是否可以禁用 W3C 模式或下载不使用该模式的旧版 Chrome 浏览器和驱动程序?我认为禁用 W3C 检查的可能性会很大。

最佳答案

您所要做的就是在初始化网络驱动程序时禁用 W3C

options = webdriver.ChromeOptions()
options.add_experimental_option('w3c', False)
create_webdriver('Chrome', options=options)

环境:

  • Chrome 75
  • ChromeDriver 75

关于ruby - 在 Cucumber Ruby 中使用 Selenium ChromeDriver 在 W3C 模式下无法调用非 W3C 标准命令 (Selenium::WebDriver::Error::UnknownCommandError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297753/

相关文章:

java - 选择单个单词或字符串(双击)以进行编辑

Python + Selenium WebDriver : open URL in new tab

javascript - Chrome 仅在本地开发中出现跨域错误。如何解决?

javascript - 在 mousedown 处理程序中更改可见性属性时,不会在 Safari 或 Firefox 中触发单击处理程序

google-chrome - 如何禁用 Google Chrome 的未请求连接?

ruby-on-rails - 无法在 Ubuntu 14.04 上安装 kgio 2.8.1

ruby-on-rails - gem 的未初始化常量

selenium - 在 Xpath 中使用 OR 条件来标识相同的元素

ruby - 如何使用 graphql-ruby 测试 GraphQL 模式?

ruby-on-rails - 连接到 127.0.0.1 上的 Redis 时出错 :6379(ECONNREFUSED) on rails application