问题标签 [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.
go - chromedp 上的网络使用情况
我正在尝试查找来自 chromedp 的每个请求的响应大小,我尝试了以下代码
但是 EncodedDataLength 是到目前为止为此请求接收的字节总数(根据文档)。有没有办法获得完整的响应大小。
谢谢
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.
chromedp - 使用 chromedp 从 HTML 字符串渲染 PNG 对象
我对 Chromedp 很陌生。我知道如何从 Chromdp 的 url 呈现图像,但是有没有办法使用 Chromedp 从 HTML 字符串本身呈现它?我可以使用以下方法将 url 转换为图像:
html - chromedp 中 PrintToPDF 函数的 WithFooterTemplate 方法的有效 html 是什么?
我们尝试将页码添加到我们打印的 html 页面。但我们没有成功。现在代码看起来像这样。
这是该方法的源代码。在这里找到它https://github.com/chromedp/cdproto/blob/master/page/page.go#L812
由于某种原因,我们在这里找不到任何有效的 html 注入。使用该代码,结果如下所示:有一个页眉,因为我没有为此提供模板,但是即使我提供了一个模板来呈现页码,页脚也是空的
go - chromedp clear 不适用于按查询选择
我遇到了 chromedp.Clear() 的问题
我能够成功地填写以下输入:
但首先清除它:
HTML 的一个片段:
我不能使用类 cssKenmerkNoLookup,因为同一个类用于多个输入,所以这就是我使用“ByQuery”的原因
我在看什么?
go - 如何使用 chromedp 修改 HTML 元素的属性
我正在尝试使用 chromedp 将输入元素的禁用属性设置为 false。我可以使用控制台 chrome 开发工具修改它的值,但在我的代码中没有实现它。
我将解释这个输入的完整行为以及我为什么需要它。
我有一个使用此命令修改的第一个选择输入
通常,您必须单击它,当您修改它的值时,它会自动更改我所针对的对象的禁用属性。它正在工作。
现在我们到达了我无法修改的元素,我可以在其中输入日期,所以我现在的选择器是正确的,我无法更改 disabled 属性,这就是我实际尝试的:
我headless
在 false 下运行了 chromedp,所以我可以清楚地看到该元素仍然被禁用,因为它总是变灰。
我在控制台上尝试过的东西很有效:
go - 使用 chromedp 时找不到具有给定 id (-32000) 的节点
我正在尝试使用chromedp 抓取一个网站,在某些时候有多个页面,我需要单击每个页面。我成功点击了第 2 页(每个页面都是一个<a href>
元素)并抓取了它的内容,但是当我的代码需要点击第 3 页时出现Could not find node with given id (-32000)
错误。
对于我在其他问题上看到的内容,它可能来自一个滞后的服务器,所以我已经测试waitVisible
并waitReady
在 HTML 元素上存储了我需要抓取的结果,但我仍然有这个问题。
我可能对导致此错误的原因有所了解,当我单击下一页的链接时,页面已刷新但 url 未刷新,因此我怀疑包含我的a href
链接的节点数组无效。
这是我实际尝试过的
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
代码应该很容易重现。
go - chromedp.ActionFunc 中的任务未按预期工作
这是我的代码:
我想要做的是导航到url
评估并获取一个大列表的值queries
(我将数组减少到示例中的 3 个查询)。
然后它应该只输出这些查询的值。
但我得到的是每次迭代的这些错误:
go - 如何使用 chromedp 检测 javascript 警报
我试图确定在使用 chromedp 导航到 URL 后弹出了一个警报。我尝试使用如下监听器,但我是 Golang 的新手,所以我不确定为什么它不起作用。