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

在无头chrome Docker中获取运行硒的空页

楚意
2023-03-14

我在一个基于Oracle Linux的Docker中用headless chrome运行了一个测试用例。

我请求的页面应该被重定向到一个带有username password字段的身份验证页面,但我在docker服务器()中得到的是空白页。这在我的MacBook上很好用。

这是当我尝试从docker内部直接使用chrome浏览器运行相同的输出

bash-4.2# google-chrome --headless --no-sandbox  --dump-dom --ignore-ssl-errors --ignore-certificate-errors  --ssl-protocol=TLSv1 --allow-running-insecure-content --allow-insecure-localhost  https://example.com/

**[0108/134327.972921:错误:cert_issuer_source_aia.cc(104)]AiareQuest::OnFetchCompleted得到错误-3

OS详细信息:Linux 7e3f36f795d9 4.1.12-124.45.6.el7uek.x86_64#2 SMP Wed 11月25日06:46:51 PST 2020 x86_64 x86_64 x86_64 x86_64 GNU/Linux

即使我在linux docker中运行,传递的用户代理仍然是“--user-agent=Mozilla/5.0(Macintosh;Intel Mac OS X 10_152)AppleWebKit/537.36(KHTML,like Gecko)Chrome/87.0.4280.88 Safari/537.36”。我应该使用Linux用户代理吗?

Chrome binary和Chrome webdriver版本:87.0.4280.88可能是什么原因造成的,我在这上面困了两天。提前谢了。

Docker文件如下

        FROM base_image
    ARG USER=usr
    RUN yum -y install wget \
    && wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm \
    && yum -y install libappindicator-gtk3-12.10.0-13.el7.x86_64  \
    && yum -y install libXScrnSaver-1.2.2-6.1.el7.x86_64  \
    && yum -y install liberation-fonts-1.07.2-16.el7.noarch \
    && yum -y install liberation-narrow-fonts-1.07.2-16.el7.noarch alsa-lib-1.1.8-1.el7.i686 xdg-utils alsa-lib-devel\
    && wget     http://mirror.centos.org/centos/7/os/x86_64/Packages/vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm \
    && wget http://mirror.centos.org/centos/7/os/x86_64/Packages/vulkan-1.1.97.0-1.el7.x86_64.rpm \
    && rpm -ivh vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm \
    && rpm -ivh vulkan-1.1.97.0-1.el7.x86_64.rpm \
    && rpm -ivh google-chrome-stable_current_x86_64.rpm \
    && yum clean all
    RUN rm -rf /var/cache/yum;
    EXPOSE 8080

共有1个答案

强才捷
2023-03-14

所以docker图像中的问题是肯定的。在安装过程中会发生很多事情,但在实际安装ChromeDriver时,我没有看到最明显的事情。

# install chromedriver
RUN apt-get install -yqq unzip
RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip
RUN unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/

有关自定义docker图像的更多信息,您可以在此答案和线程中查看。此外,我会建议去与预先构建的硒docker图像,这是完美的工作,每一次为我。

 类似资料:
  • 我正在使用Selenium WebDriver、eclipse、testng和surefire插件。我无法从pom.xml运行testng.xml文件。当我使用mvn测试运行pom.xml时,它直接运行src/test//testcases中的文件。请就我的错误提出忠告。先谢谢你 我的POM文件: 我的testng.xml: 我的测试案例:

  • 在火虫中,我有一个与此内容的链接: 如何使用“类名”访问链接(单击它)? 我尝试了以下方法: 但是我得到了错误: 线程“main” org.openqa.selenium中出现异常。InvalidSelectorException:给定的选择器cb_or_somename cb_area_0219无效或不产生WebElement 发生以下错误:InvalidSelectorError:不允许使用复

  • 我在运行一个简单的helloworld示例drools项目时遇到了以下错误。 代码: 口水代码:

  • 我试图在docker compose中运行python selenium。我有以下文件: docker撰写。yml: Dockerfile: 测验py: 我跑: 我在测试中发现了一个连接被拒绝的错误。在尝试创建webdriver时使用py。 查看日志,hub和chrome驱动程序似乎已启动并运行,chrome驱动程序已连接到hub。我可以从应用程序ping hub和chrome容器。有什么想法吗?

  • 我已经编写了一个NetLogo模型来模拟环境中的代理移动。我想使用AWs/Google Compute从命令提示符运行此模型。该模型使用价值约500MB的输入光栅和shapefile并写入光栅和csv文件。它还使用扩展名gis、rnd、cf、table和csv。 使用控制API是否可能做到这一点?(https://github.com/NetLogo/NetLogo/wiki/Controllin