问题标签 [chromedp]

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.

0 投票
1 回答
227 浏览

go - chromedp 上的网络使用情况

我正在尝试查找来自 chromedp 的每个请求的响应大小,我尝试了以下代码

但是 EncodedDataLength 是到目前为止为此请求接收的字节总数(根据文档)。有没有办法获得完整的响应大小。

谢谢

0 投票
1 回答
708 浏览

go - chromedp fails to start a new instance of chrome

Hey guys I have been trying to automate a task on my browser's machine using chromedp.

I tried examples on the repo however they always fail:

unexpected fault address 0x7f7a36461000 fatal error: fault [signal SIGBUS: bus error code=0x2 addr=0x7f7a36461000 pc=0x53a9d5]

Example's source code am running can be found here.

As I understand chromedp comes with headless pre-compiled version of chrome. I have browsed the API documentation to see if it possible to pass a port on which the dev tools is listening, no success.

However when I tried mafredri/cdp it worked. I came to understand that chromedp is failing to start its embedded chrome. Although, I am not really sure. Why is this happening?

My env:

Google Chrome 85.0.4183.102

Ubuntu 18.04.4 LTS

go version go1.13.5 linux/amd64

Any help would be truly appreciated.

0 投票
0 回答
190 浏览

chromedp - 使用 chromedp 从 HTML 字符串渲染 PNG 对象

我对 Chromedp 很陌生。我知道如何从 Chromdp 的 url 呈现图像,但是有没有办法使用 Chromedp 从 HTML 字符串本身呈现它?我可以使用以下方法将 url 转换为图像:

0 投票
1 回答
151 浏览

html - chromedp 中 PrintToPDF 函数的 WithFooterTemplate 方法的有效 html 是什么?

我们尝试将页码添加到我们打印的 html 页面。但我们没有成功。现在代码看起来像这样。

这是该方法的源代码。在这里找到它https://github.com/chromedp/cdproto/blob/master/page/page.go#L812

由于某种原因,我们在这里找不到任何有效的 html 注入。使用该代码,结果如下所示:有一个页眉,因为我没有为此提供模板,但是即使我提供了一个模板来呈现页码,页脚也是空的

0 投票
1 回答
264 浏览

go - chromedp clear 不适用于按查询选择

我遇到了 chromedp.Clear() 的问题

我能够成功地填写以下输入:

但首先清除它:

HTML 的一个片段:

我不能使用类 cssKenmerkNoLookup,因为同一个类用于多个输入,所以这就是我使用“ByQuery”的原因

我在看什么?

0 投票
1 回答
619 浏览

go - 如何使用 chromedp 修改 HTML 元素的属性

我正在尝试使用 chromedp 将输入元素的禁用属性设置为 false。我可以使用控制台 chrome 开发工具修改它的值,但在我的代码中没有实现它。

我将解释这个输入的完整行为以及我为什么需要它。

  1. 我有一个使用此命令修改的第一个选择输入

    通常,您必须单击它,当您修改它的值时,它会自动更改我所针对的对象的禁用属性。它正在工作。

  2. 现在我们到达了我无法修改的元素,我可以在其中输入日期,所以我现在的选择器是正确的,我无法更改 disabled 属性,这就是我实际尝试的:

headless在 false 下运行了 chromedp,所以我可以清楚地看到该元素仍然被禁用,因为它总是变灰。

我在控制台上尝试过的东西很有效:

0 投票
0 回答
313 浏览

go - 使用 chromedp 时找不到具有给定 id (-32000) 的节点

我正在尝试使用chromedp 抓取一个网站,在某些时候有多个页面,我需要单击每个页面。我成功点击了第 2 页(每个页面都是一个<a href>元素)并抓取了它的内容,但是当我的代码需要点击第 3 页时出现Could not find node with given id (-32000)错误。

对于我在其他问题上看到的内容,它可能来自一个滞后的服务器,所以我已经测试waitVisiblewaitReady在 HTML 元素上存储了我需要抓取的结果,但我仍然有这个问题。

我可能对导致此错误的原因有所了解,当我单击下一页的链接时,页面已刷新但 url 未刷新,因此我怀疑包含我的a href链接的节点数组无效。

这是我实际尝试过的

0 投票
0 回答
61 浏览

go - 使用来自客户端的密钥代码输入 chromedp

我在 javascript 中有一段代码向服务器发送一个请求,其中包含我的按键列表。我获取密钥代码的方式是这样的:

在我的 golang 代码中,我尝试使用这些在 chromedp 实例中键入一些文本,方法是:

问题是这种类型实际上是关键代码,我一直在试图找到一种方法来做到这一点,但我不知道。

有谁知道如何做到这一点?

提前致谢。

编辑

我已将代码添加到 github,这是 repo: https ://github.com/ericmackrodt/netscape-proxy

客户端收集键码并将它们作为查询参数发送到此处:

https://github.com/ericmackrodt/netscape-proxy/blob/main/templates/browser.html#L48

服务器在此处从客户端接收密钥代码:

https://github.com/ericmackrodt/netscape-proxy/blob/main/server.go#L80

然后对其进行解析并尝试在此处键入它们:

https://github.com/ericmackrodt/netscape-proxy/blob/main/browser/browser.go#L70

代码应该很容易重现。

0 投票
1 回答
373 浏览

go - chromedp.ActionFunc 中的任务未按预期工作

这是我的代码:

我想要做的是导航到url评估并获取一个大列表的值queries(我将数组减少到示例中的 3 个查询)。

然后它应该只输出这些查询的值。

但我得到的是每次迭代的这些错误:

0 投票
1 回答
382 浏览

go - 如何使用 chromedp 检测 javascript 警报

我试图确定在使用 chromedp 导航到 URL 后弹出了一个警报。我尝试使用如下监听器,但我是 Golang 的新手,所以我不确定为什么它不起作用。