首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elixir & Hound无头浏览器

Elixir & Hound无头浏览器
EN

Stack Overflow用户
提问于 2014-08-25 06:39:21
回答 2查看 1.6K关注 0票数 3

当你需要一个无头浏览器时,Hound非常适合测试web应用程序等。我让它正常工作,玩弄测试等,但这里有两个关于猎犬的问题,也许有人可以解释谁熟悉Elixir :)

1.)我使用的是PhantomJS的远程WebDriver模式(本地主机上的phantoms -w)。我已经在config.exs中设置了'config :hound,driver:" PhantomJS "‘,这样一个简单的"navigate_to @ PhantomJS“就可以启动一个HTTP实例并正常工作。现在我想要更改这个请求的HTTP User Agent字符串。PhantomJS提供了这个page.settings哈希。在远程WebDriver模式下对本地PhantomJS运行上面的请求会显示以下设置:

代码语言:javascript
运行
复制
[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代理进行身份验证。我知道如何从命令行启动PhantomJS,但是在什么地方定义它们在猎犬之上运行是正确的呢?

EN

回答 2

Stack Overflow用户

发布于 2016-03-01 09:51:55

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

代码语言:javascript
运行
复制
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"})

对于代理选项,该值应该是具有属性的另一个映射。

代码语言:javascript
运行
复制
Hound.start_session(%{proxy: %{property: "parameter", property: "parameter"}})

我从来没有在代理中使用过它,所以我不确定如何正确地配置它。

票数 1
EN

Stack Overflow用户

发布于 2016-04-17 20:22:56

我花了相当多的时间来尝试让它工作。cevado的答案对我不起作用,但我可以通过设置以下内容来设置用户代理。

代码语言:javascript
运行
复制
Hound.start_session(%{"phantomjs.page.settings.userAgent" => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"})

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25476984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档