1

我尝试运行 fin 函数,但由于某种原因,我返回 nil。我搜索的项目必须在那里,我怎样才能获得 html 以查看问题所在?

4

2 回答 2

3

我有两个接收小袋鼠会话的辅助函数。

第一个将可见文本打印到 STDOUT:

  def print_page_text(session) do
    session |> Wallaby.Browser.text() |> IO.inspect()
    session
  end

第二个函数将完整的 HTML 页面源打印到 STDOUT:

  def print_page_source(session) do
    session |> Wallaby.Browser.page_source() |> IO.inspect()
    session
  end

通过返回会话,这些函数可以在通常的小袋鼠查询/断言之间使用:

session
|> visit("/example/page")
|> print_page_text()
|> assert_text("Hello World!")

另一个有用的功能是Wallaby.Browser.take_screenshot/2

于 2019-06-21T09:32:11.813 回答
0

我不知道这是否是你的问题,但是当我在这个 html 上尝试 wallaby 时:

<p class="results"><div class="green">That's all folks!</div></p>

有了这个find()

find(css(".results", count: 1))

我得到了错误:

** (Wallaby.QueryError) 期望找到 1 个与 css '.results' 匹配的可见元素,但找到了 0 个可见元素。

但是,如果我将 html 更改为:

<div class="results"><span class="green">That's all folks!</span></div>

我使用相同find()的(顺便说一下,它不返回列表,所以不要跟随它List.first()),然后小袋鼠确实找到了元素。根据html5规范,您不能将 div 标签放在 ap 标签内,并且开始div标签会导致浏览器关闭 p 标签,如下所示:

                   HERE
                    |
                    V
<p class="results"></p><div class="green">That's all folks!</div></p>

我认为小袋鼠无法解析非法 html 并找到 p 标签。在尝试使用 wallaby 之前,您可以尝试通过html 验证器运行您的 html。

于 2019-06-20T23:17:00.830 回答