'selenium.common.exceptions.WebDriverException:消息:无法访问 u'chrome

2023-11-23

我正在使用 webdriver 来配置路由器,但是当我运行脚本时:

from selenium import webdriver
self.driver = webdriver.Chrome()

它打开chrome并且没有响应,然后引发异常:

铬无法到达。

我的电脑有两个网卡,当我禁用一个时,它工作得很好。
我不知道为什么,请帮忙!


在纯粹的情况下,“chrome 无法访问”意味着 Chrome 二进制文件可以启动,但调试端口无法访问。

调试端口由参数设置:--remote-debugging-port=12582

就我而言,发生这种情况是因为沙箱存在一些问题:

ps afvvx | grep chrome

/opt/google/chrome/chrome --disable-background-networking --disable-client-side-phishing
21026 pts/2    S+     0:00      0    47  6008   100  0.0  |           \_ cat
21027 pts/2    S+     0:00      0    47  6008   100  0.0  |           \_ cat
21029 pts/2    Z+     0:00      0     0     0     0  0.0  |           \_ [chrome-sandbox] <defunct>

当我运行 /opt/google/chrome/chrome-sandbox 时

# /opt/google/chrome/chrome-sandbox  -h
The setuid sandbox provides API version 1, but you need 0
Please read [https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment][1].

close: Bad file descriptor
Read on socketpair: Success

从上面的网址我无法得知如何修复 SUID SandBox,但可以通过 Chrome arg --disable-setuid-sandbox (有时使用 --no-sandbox)将其关闭:

import time
from selenium import webdriver

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-setuid-sandbox")

driver = webdriver.Chrome('/usr/local/sbin/chromedriver', chrome_options=chrome_options)  # Optional argument, if not specified will search path.
driver.get('http://www.google.com/xhtml');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()

vdisplay.stop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

'selenium.common.exceptions.WebDriverException:消息:无法访问 u'chrome 的相关文章

随机推荐

  • Objective-C 串口 - Mac OS X

    我目前正在终端中运行以下命令 通过 USB 串行发送命令 Users drummerboyx Library Scripts arduino serial b 9600 p dev tty usbserial A800ev0Z s 1 Ob
  • 使用 AJAX(不是表单)更新 Rails 3 部分

    我发现了一些关于提交表单后使用 Ajax 更新部分内容的问题和答案 但我的问题是 更简单 我只想每隔几秒重新加载一部分并加载新数据 这真的一点也不难 我记得在 Rails 2 3 中做过类似的事情 但我在任何地方都找不到答案 基本上 我有一
  • junit 测试中的 spring-data-jpa bean 验证

    在我最近的工作中 我使用 spring data jpa 来利用提供的存储库 当涉及到集成测试时 我无法配置 我假设 用于测试的 spring 上下文 因此 bean 验证在我的测试中不起作用 我知道我可以注入验证器 并对我的注释进行单元测
  • Oracle 在 DATE 使用 LIKE '%'

    我的桌子myTab有专栏startDate 其数据类型为 DATE 该列中的数据存储方式如下dd mm yyyy 现在我尝试使用此查询获取数据 SELECT FROM myTab WHERE startDate like 01 2015 不
  • 如何在Tlistview中基于subitem[x]排序

    如何排序tlistview数据存在于subitem x Set SortType stData和写 procedure TForm1 ListView1Compare Sender TObject Item1 Item2 TListItem
  • 无法在 PyQt5 中导入 QtWebKitWidgets

    我最近使用 Windows 32 位安装程序将 PyQt5 从 5 5 1 升级到 5 6 0 https www riverbankcomputing com software pyqt download5 我还将我的 python 从
  • Android 音频 SeekBar

    我正在尝试创建一个可以播放单个音频文件并且可以使用进度 搜索栏暂停和操作的东西 我想要一个图像占据大部分屏幕 然后在左下角有一个播放暂停按钮 在按钮右侧有一个栏 一切都在搜索栏上运行 但未链接到音频 我的进度条编码可能是一团糟 因为如果从我
  • 将多个域添加到 azure 网站

    我正在将一个相当重要的多租户应用程序迁移到 Azure 我看到的挑战之一是它托管着一百多个域 在 Azure 方面 我认为添加自定义域的唯一方法是通过门户手动输入它们 我真的很想使用 Azure PowerShell 或 对于这种一次性操作
  • 如何获取 Win32 中的 CPU 周期数?

    在 Win32 中 有没有办法获得唯一的 cpu 周期计数或类似的东西 对于多个进程 语言 系统 等来说是统一的 我正在创建一些日志文件 但必须生成多个日志文件 因为我们托管 NET 运行时 并且我希望避免从一个日志文件调用另一个日志文件来
  • iOS 5 + GLKView:如何访问像素 RGB 数据以进行基于颜色的顶点拾取?

    我一直在转换我自己的个人 OGLES 2 0 框架 以利用新的 iOS 5 框架添加的功能GLKit 在获得令人满意的结果后 我现在希望实现所描述的基于颜色的拾取机制here 为此 您必须访问后台缓冲区以检索触摸的像素 RGBA 值 然后将
  • 如何下载 XML 文件避免弹出窗口这种类型的文件可能会通过 ChromeDriver 和 Chrome 使用 Python 中的 Selenium 损害您的计算机

    我想从供应商处下载每日 xml 文件 我成功登录并单击链接 接受下载 以开始使用 chromedriver 下载 但我收到弹出窗口 这种类型的文件可能会损害您的计算机 页面的 MIME 是 text html 我不确定链接是否是 text
  • 一个简单的 Java SOAP 客户端

    我是 Web 服务的新手 并且一直在绞尽脑汁地试图在 Internet 上找到一个简单的 Java SOAP 客户端程序 我想做的就是发送一条 SOAP 消息并接收一些响应 有一个提供免费网络服务的网站 您输入国家 地区名称 它就会为您提供
  • 使用 Puppeteer 绕过 Cloudflare

    我正在尝试使用我的 Puppeteer 进入 hotbit io 但当 puppeteer 尝试进入页面时 我遇到了 在访问 www hotbit io 之前检查您的浏览器 当我以 headless false 运行程序时 它会在 5 秒后
  • 运算符“!=”不能应用于“Task”和“int”类型的操作数

    最近我开始使用 Xamarin 创建 Android 应用程序 我尝试使用 SQLite 创建一个小型本地数据库 我使用了以下教程Xamarin 文档网站 不幸的是我收到一个错误 错误 CS0019 运算符 无法应用于类型 Task 和 i
  • 为什么位字节顺序是位字段中的一个问题?

    任何使用位域的可移植代码似乎都会区分小端和大端平台 请参阅Linux内核中struct iphdr的声明此类代码的示例 我根本不明白为什么位字节顺序是一个问题 据我了解 位域纯粹是编译器构造 用于促进位级操作 例如 考虑以下位字段 stru
  • Java 中的表单加载事件处理程序是什么?

    Java 中类似于 C 中的 From Load 的事件处理程序 使用 net beans 是什么 如果您使用 Swing 的 JFrame 请尝试使用 addWindowListener 继承自 java awt Window 侦听器的
  • WebSockets 还是带有phonegap 的替代方案?

    如何使用phonegap 将低延迟数据发送到服务器并返回 考虑到我无法在本地访问 php 文件 并且没有使用 node js 或 WebSockets 的经验 我不知道应该使用哪些 Android 或 Android 中的浏览器本身不支持
  • 自定义 dealloc 和 ARC (Objective-C)

    在我的 iPad 小应用程序中 我有一个使用观察者的 切换语言 功能 每个视图控制器在其期间都会向我的观察者注册自己viewDidLoad void viewDidLoad super viewDidLoad observer regist
  • 如何检查函数模板是否已专门化?

    有没有办法在编译时确定某个函数模板是否是专门的 例如 假设有以下函数模板 template
  • 'selenium.common.exceptions.WebDriverException:消息:无法访问 u'chrome

    我正在使用 webdriver 来配置路由器 但是当我运行脚本时 from selenium import webdriver self driver webdriver Chrome 它打开chrome并且没有响应 然后引发异常 铬无法到