当前位置: 首页 > 知识库问答 >
问题:

机器人框架-Docker-ChromeDriver

沈凯康
2023-03-14

我正在尝试设置一个容器,以便在Chrome上使用RobotFramework进行测试。

但是当我运行容器时,我总是得到一个WebDriverException。我已经找过了,但找不到任何对我有效的修复方法。

这是我的Dockerfile

FROM python:3

RUN apt-get update -y

# Dependencies
RUN apt-get install -y  \
       apt-utils \
       build-essential \
       fonts-liberation \
       gconf-service \
       libappindicator1 \
       libasound2 \
       libcurl3 \
       libffi-dev \
       libgconf-2-4 \
       libindicator7 \
       libnspr4 \
       libnss3 \
       libpango1.0-0 \
       libssl-dev \
       libxss1 \
       python-dev \
       python-pip \
       python-pyasn1 \
       python-pyasn1-modules \
       unzip \
       wget \
       xdg-utils \
       xvfb \
       libappindicator3-1 \
       libatk-bridge2.0-0 \
       libgtk-3-0 \
       lsb-release

# Install Chrome for Selenium
RUN curl https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -o /chrome.deb
RUN dpkg -i /chrome.deb || apt-get install -yf
RUN rm /chrome.deb

# Install chromedriver for Selenium
RUN curl https://chromedriver.storage.googleapis.com/2.42/chromedriver_linux64.zip -o /usr/local/bin/chromedriver
RUN unzip -o /usr/local/bin/chromedriver -d /usr/local/bin
RUN chmod +x /usr/local/bin/chromedriver


WORKDIR /home

COPY . .

RUN pip install -e .

CMD [ "pybot","./tests/test.robot" ]

*** Settings ***
Library  Selenium2Library

*** Variables ***


*** Test Cases ***
Connect
  Open Browser   https://google.es  Chrome
install_requires=[
        'robotframework',
        'robotframework-selenium2library',
        'selenium'
    ]

共有1个答案

张绍晖
2023-03-14

我最近在使用docker容器和Amazon Linux运行机器人测试时遇到了这个问题。我发现,尽管我在robot framework测试中添加了所需的参数,如下面的示例所示,chrome仍然崩溃,甚至没有从您收到的相同消息开始。我通过更新容器中options.py中的python设置解决了这个问题。

我用下面的命令更新了docker容器,以设置python selenium chrome WebDriver options.py文件中的选项。在我的例子中,我使用的是python Version3.7-所以您需要确保使用的路径是正确的。

RUN sed -i "s/self._arguments\ =\ \[\]/self._arguments\ =\ \['--no-sandbox',\ '--disable-dev-shm-usage'\]/" /usr/local/lib/python3.7/site-packages/selenium/webdriver/chrome/options.py

示例机器人--这是我在机器人框架中尝试的,但没有修复问题。

${chrome_options} =     Evaluate sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
Call Method    ${chrome_options}   add_argument    headless
Call Method    ${chrome_options}   add_argument    disable-gpu
Call Method    ${chrome_options}   add_argument    no-sandbox
Call Method    ${chrome_options}   add_argument    disable-dev-sim-usage    ${options}=     Call Method     ${chrome_options}    to_capabilities
${options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
open browser  about:blank  ${BROWSER}  desired_capabilities=${options}
 类似资料:
  • 我有一个聊天机器人解决方案创建使用。Net Framework,该框架与Facebook messenger集成,使用Microsoft提供的以下说明: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-facebook?view=azure-bot-service-4.0 现在他们添加了一

  • 我是Robot框架的新手,致力于使用带有Selenium和java关键字的Robot框架。我知道RF是基于python的,但是,该项目要求使用java关键字。 我的想法是创建java函数和文本文件,然后使用:

  • 问题内容: 我必须实现一个管道,并试图找到一种方法,如何在Jenkins管道中发布Robot Framework结果。我发现了有关将Robot Framework插件实现到Pipeline中的多个问题,并且也发现了这个问题,这似乎是解决方案。但是,我尝试了这种方法,结果仍然不见了。 有任何解决方法或功能示例吗? 问题答案: [编辑以反映成功的解决方法] 对问题跟踪器的此评论显示了一种似乎可行的解决

  • 我是一名java开发人员,我想开发一个聊天机器人,并集成到网站、脸书页面和WhatsApp群组中……Java中有没有一个非常好的框架,可以让我开发这个聊天机器人,并在未来集成人工智能。或者我用python或者NodeJs更好。如果是,哪个框架更适合这个项目。谢了。

  • 我想用机器人框架实现selenium网格。我已经配置了selenium网格集线器和两个节点,但是我不知道如何在此设置后触发并行测试用例执行,在哪里使用python语言和selenium 2库关键字更新机器人框架中的线程数和并行测试执行设置?此外,在哪里分配集线器url来触发执行?请建议可能的解决方案。注意:我们在脚本中使用selenium 2库关键字,而不是web驱动程序关键字,因此我无法使用“w

  • 我想知道是否有将自动化测试用例与zephy de jira集成的选项。 目前,我在robot框架中有一组自动测试。同时,我在Zephyr中为jira定义了测试用例。我希望能够从Zephyr启动自动测试用例的执行,否则执行的结果将反映在Zephyr测试用例中。 谢谢你。