问题标签 [hound]

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 投票
2 回答
1594 浏览

browser - Elixir & Hound 无头浏览器

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

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

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

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

0 投票
1 回答
1279 浏览

selenium - 使用 Elixir 抓取网站的问题

我正在尝试对我的应用程序进行简单的猎犬测试,我发现它与硒有关。这是代码:

在 mix.exs 中:

在 lib/scraper.ex 中

在 config/config.exs

启动 webdriver 服务器

运行应用程序:

0 投票
1 回答
2106 浏览

selenium - 如何使用 hound 和 selenium 在 elixir/phoenix 中运行测试

这是我的mix.exs

这是我的config/config.exs

测试/sample_test.exs

配置/test.exs

启动 webdriver 服务器(一次尝试所有这些)

  1. java -jar selenium-server-standalone-2.48.2.jar

  2. java -jar selenium-server-standalone-2.49.0.jar

  3. java -jar selenium-server-standalone-2.52.0.jar

  4. docker run -it -p 4444:4444 danielfrg/selenium

  5. docker run --privileged -p 4444:4444 -p 5999:5999 -d vvoyer/docker-selenium-firefox-chrome

每次运行应用程序时都会出现此错误:

0 投票
1 回答
1116 浏览

elixir - Elixir Hound 等待页面加载

我正在提交一个登录表单,然后尝试使用 elixir / hound 捕获 HTML。提交后,我运行page_source并一无所获。如果我等待一秒钟(页面完成加载),那么我会取回 html。

有没有办法让猎犬等到页面加载完成?

我目前正在做::timer.sleep(2000)作为一种解决方法,希望有更好的方法:/

0 投票
1 回答
160 浏览

elixir - 无法在 Elixir 中使用 Hound 加载页面

我正在尝试请求一个页面并对其进行检查,但我得到:

我的代码:

它出什么问题了?

0 投票
1 回答
457 浏览

google-chrome-extension - 加载 ChromeDriver 扩展或代理 ChromeDriver 和 Elixir

我正在编写一个我试图代理的网络爬虫,但不能完全弄清楚如何在 Elixir 中做到这一点。

我正在使用在无头 ChromeDriver 上运行的 Hound。我通过https://luminati.io购买了一些代理 IP ,它们提供 chrome 扩展和用户/密码基础代理服务器。

webscraper 操作由一个代表用户抓取 web 的 GenServer 组成。该应用程序没有前端,它接受通过我在 Telegram 上构建的机器人发送给它的命令,因此当用户发送登录命令时,它会触发 GS 的登录功能。

此时,GenServer 将使用 Hound.change_session_to/2 更改 ChromeDriver 会话,然后将用户登录。

这很好用,但现在我想通过代理服务器通过用户名和密码发送每个请求。使用 Hound 更改会话时,它也允许设置 chromeOptions。

我尝试做的另一件事是加载 luminati 的 ChromeExtension,我可以使用它来代理流量,但我无法为每个会话加载扩展。我下载了打包好的 CRM chrome 扩展并将其放在我的 priv 文件夹中。当会话加载时,它似乎可以很好地加载用户代理,但扩展永远不会启动。当我尝试加载扩展时,我并没有无头运行。

有没有人有使用 chrome 驱动程序和 Elixir 的经验?使用 Ruby 和 Java 设置扩展通常没有问题。

0 投票
1 回答
600 浏览

testing - 如何使用 Hound 从选择下拉列表中选择一个选项?

我有以下下拉列表:

我正在用Hound在Elixir中编写集成测试,我想在提交表单之前从上面的列表中选择一个元素。我可以用猎犬做到这一点吗?

我在Hound 文档中找不到任何有关下拉列表的信息。

0 投票
0 回答
15 浏览

code-search-engine - 如何跟踪 Hound 的使用情况

我们可以通过哪些方式监控 Hound,包括使用情况和特定搜索?是否有任何内置系统或可以作为扩展添加的系统?

我们在 Intranet 上运行 Hound,但我们无法了解它的使用方式和使用量。

目前,猎犬正在通过木偶管道安装。

初步想法:

1)在猎犬前面添加一个代理转发端点来记录“命中”并将其发送到某个数据库存储。这不会跟踪猎犬的低级使用(即搜索查询),只是命中。

2)以某种方式启用服务器日志并解析日志?我不确定我会从日志中获得多少信息,并且可能会涉及解析。然后将此信息发送到某个数据库存储。

0 投票
1 回答
295 浏览

selenium - 尝试在 Hound 中阅读网页时,出现 Hound.start_session 的编译错误

我开始了一个新项目并像这样配置它:

我清空了“lib/example.ex”并在其中放置了以下代码:

这是https://github.com/HashNuke/hound/blob/master/notes/simple-browser-automation.md提供的示例代码

brew install selenium-server-standalone然后我通过(我在 MacOS 上)安装了 Selenium 服务器,通过启动它brew services start selenium-server-standalone并添加config :hound, driver: "selenium"config/config.exs

我添加Application.ensure_all_started(:hound)test/test_helper.exs.

最后,我添加{:hound, "~> 1.0"}到 mix.exs 并运行mix test. 那是当我收到以下编译错误时:

我是否在某处忘记了某个步骤或配置不正确?非常感谢任何帮助,谢谢!

0 投票
1 回答
324 浏览

elixir - 如何使用 hound/elixir 截取失败的屏幕截图

我正在尝试使用 take_screenshot() (Hound) 截取屏幕截图。我只需要捕获失败的屏幕截图。

我尝试过尝试/救援,但是即使断言失败,救援块也总是执行。

我也试过,

我想,如果断言失败,那么它应该截图。