问题标签 [google-chrome-headless]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-chrome - 无头 Chrome REPL 不起作用
当我尝试运行时:
变得无限:
Ubuntu 16.04 上的谷歌浏览器 60.0.3112.113
这是Chrome中的错误吗?
google-chrome-devtools - DevTools 协议 - Target.getTargets 和请求 /json 端点有什么区别?
在这种情况下,您可以用自己的实现替换开发者工具前端。您的应用程序可以通过以下请求来发现可用页面,而不是导航到http://localhost:9222的 HTML 页面: http://localhost:9222/json并获取一个 JSON 对象,其中包含有关可检查页面的信息以及 WebSocket 地址您可以使用它们来开始检测它们。
但是,根据 Target Domain 文档,发送消息(通过 websockets){"method": "Target.getTargets"}
返回“可用目标列表”:
Target.getTargets # 检索可用目标的列表。
返回对象:
targetInfos
array
[ TargetInfo ]
:目标列表。
有什么区别?
python - selenium 可以打开远程无头 chrome 的调试页面吗?
平台:
- 计算机 A(网格集线器):Ubuntu 14.04
- 计算机 B(网格节点):Ubuntu 16.04
python + Selenium Grid + 无头 Chrome
我做了什么
我正在使用 Selenium Grid - 在计算机 A 中设置了一个集线器,在计算机 B 中设置了一个节点。我可以通过以下 python 代码打开计算机 B 的无头 Chrome:
但是当我添加--remote-debugging-port=9222
到时options
,终端中运行的进程最终会冻结并抛出错误。
(我将在今天晚些时候在这里发布终端信息......)
我发现了什么
netstat -a | grep localhost | grep ESTABLISHED
在计算机 B 上列出了以下信息:
我的尝试证明计算机 B 上的相关端口总是以 开头
12
,例如 12500、12341、12970...
当我localhost:12970
在计算机B上访问时,我以为我找到了我一直在寻找的调试页面,但实际上它与正常的不同:
而一个“正常”的就像:
我想要的是
我可以在选项中添加调试端口吗?如果可以的话,我是否能够打开一个Remote()
FireFox(因为仍然无法在 Chrome 中打开调试链接)来远程访问调试页面(在我的情况下,其 url 是localhost:9222
),这是用于调试无头 Chrome。
谢谢
有任何想法吗?谢谢!
javascript - 给定 request.continue() 的循环行为,如何将每个网络请求存储到一个数组中?
我试图在访问页面时获取所有网络请求并将它们存储到数组中。
我的代码如下所示:
我发现问题出在request.continue()
. 它为每个获取的请求创建多个迭代,并且对于每个迭代,它显示该请求并将其作为字符串返回。这意味着我最终得到了几个字符串。
问题是我无法将所有这些字符串插入一个数组,所以我最近可以使用它们。我尝试了几个 for 循环,但没有成功。
python - Chrome 无头忽略系统代理
编辑:这是演示问题的 youtube 视频:
我正在使用 --headless 标志运行带有 chrome 的 selenium,但显然使用 --headless 似乎忽略了系统代理。我之前在 Mac 上测试过它,但它没有绕过代理,但在我的 Mac 上的 Windows 10 VM 上,它似乎绕过了代理。
代码 :
如果我不使用 headless 标志。它显示系统代理的IP,但如果使用它,它会显示我的真实IP。
java - 使用无头浏览器进行调试
我有一个WebDriver
测试套件,当我在普通和无头浏览器中执行它时,它的运行方式有所不同。有一个元素在无头模式下执行时找不到,但在正常模式下使用相同的代码、相同的驱动程序时找到。我使用这个标志来设置无头模式:
有ChromeDriver 2.31
并且WebDriver 3.5.2
在使用中。我怎么能调试这个?
java - 无法在无头模式下启动 Chrome
我正在尝试使用Chrome Headless
Selenium Webdriver 上的模式来测试具有不同参数的脚本
NoSuchElementException
- 当通过 xpath 查找时
chrome not reachable
- webdriverexception
chrome failed to start
-
这是初始化。
xpath 没有问题,因为它在正常模式下工作。
铬版本 60
硒 3.5.0
铬驱动程序 2.32
javascript - 与 Google Chromes Puppeteer 反应
尝试使用在我的 Node.js 环境上运行的chrome puppeteer渲染一个反应组件, 我遇到了以下问题:
- 日志记录
element
让我在无头 chrome控制台中:console.log(element)
=><div id="test-wrapper"></div>
/li>testWrapper
在终端console.log(testWrapper)
=>{}
所以试着去做……</p>
…显然会导致错误(node:90555) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Invariant Violation: _registerComponent(...): Target container is not a DOM element.
我觉得即使我设法获得了 DOM 元素,我也在这里遗漏了一些东西来注入反应应用程序。
ruby-on-rails - 使用 ChromeDriver、Capybara 和 Docker Compose “拒绝连接”
我正在尝试从 PhantomJS 迁移到 Headless Chrome,但遇到了一些障碍。对于本地测试,我使用 Docker Compose 来启动并运行所有相关服务。为了配置 Google Chrome,我使用了一个将它和 ChromeDriver 捆绑在一起的图像,同时在 port 上提供它4444
。docker-compose.yml
然后,我在这个简化的文件中将它链接到我的应用程序容器,如下所示:
然后,我有一个spec/spec_helper.rb
引导测试环境和相关工具的文件。我定义了:headless_chrome
驱动程序并将其指向 ChromeDriver 的本地绑定;http://chromedriver:4444
. 我很确定以下是正确的:
我们也使用 VCR,但我已将其配置为忽略与 ChromeDriver 使用的端口的任何连接:
我使用 Docker Compose 启动服务,这会触发测试运行程序。该命令几乎是这样的:
稍等片刻,我遇到了第一个失败的测试:
所有规格都有相同的错误。因此,我进入容器自己手动运行测试并捕获它正在测试的 HTML。我将它保存在本地并在我的浏览器中打开它,以受到以下 Chrome 错误页面的欢迎。ChromeDriver 似乎没有评估规范的 HTML,因为它无法访问它,因此它尝试针对此错误页面运行测试。
鉴于上述信息,我在这里做错了什么?我很感激任何和所有的帮助,因为离开 PhantomJS 会为我们解决很多头痛的问题。
非常感谢你。如果您需要更多信息,请告诉我。