gpt4 book ai didi

browser - Elixir & Hound headless (headless)浏览器

转载 作者:行者123 更新时间:2023-12-03 17:53:13 27 4
gpt4 key购买 nike

Hound当您需要 headless (headless)浏览器时,非常适合测试 Web 应用程序等。我让它工作了,玩了测试等等。但是有两个关于猎犬的问题,也许有人可以解释谁熟悉 Elixir :)

1.) 我正在使用 PhantomJS 的远程 WebDriver 模式(本地主机上的 phantoms -w)。我已经在 config.exs 中设置了 'config :hound, driver: "phantomjs"' 所以一个简单的“navigate_to @url”启动了一个 PhantomJS 实例并正常工作。现在我想改变这个请求的 HTTP 用户代理字符串。PhantomJS 提供这个 page.settings hash. 在远程 WebDriver 模式下对本地 PhantomJS 运行上面的请求显示了以下设置:

[INFO  - 2014-08-24T21:54:00.232Z] Session [27b92460-2bd9-11e4-a77f-1daa5df28587] - 
page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,
"loadImages":true,"localToRemoteUrlAccessEnabled":false,
"userAgent":"Mozilla/5.0 (Macintosh; PPC Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.7 Safari/534.34","webSecurityEnabled":true}
[INFO - 2014-08-24T21:54:00.232Z] Session [27b92460-2bd9-11e4-a77f-1daa5df28587] - page.customHeaders: - {}
[INFO - 2014-08-24T21:54:00.232Z] Session [27b92460-2bd9-11e4-a77f-1daa5df28587] - Session.negotiatedCapabilities -
{"browserName":"phantomjs","version":"1.9.7","driverName":"ghostdriver","driverVersion":"1.1.0",
"platform":"mac-unknown-64bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,
"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,
"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct”}}

问题是:上面的userAgent怎么改?我没有找到任何处理这个问题的例子。我知道使用适当的 JS 配置将 PhantomJS 实例直接作为 CLI 工具运行会是什么样子,但不确定 hound 如何管理它。

2.) 我还需要使用带有身份验证的 HTTP 代理。与 1 相同。我知道如何处理从命令行启动 PhantomJS,但是定义它们在 hound 之上运行的正确位置是什么?

最佳答案

您应该将映射作为 additional_capabilities 参数传递给启动 session 的任何函数。

Hound.start_session(%{userAgent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"})

对于代理选项,该值应该是具有属性的另一个映射。
Hound.start_session(%{proxy: %{property: "parameter", property: "parameter"}})

我从未将它与代理一起使用,所以我不确定如何正确配置它。

关于browser - Elixir & Hound headless (headless)浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25476984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com