当你需要一个无头浏览器时,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运行上面的请求会显示以下设置:
[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,但是在什么地方定义它们在猎犬之上运行是正确的呢?
发布于 2016-03-01 09:51:55
您应该将映射作为additional_capabilities参数传递给任何启动会话的函数。
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"}})我从来没有在代理中使用过它,所以我不确定如何正确地配置它。
发布于 2016-04-17 20:22:56
我花了相当多的时间来尝试让它工作。cevado的答案对我不起作用,但我可以通过设置以下内容来设置用户代理。
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"})希望这能有所帮助。
https://stackoverflow.com/questions/25476984
复制相似问题