如何在小袋鼠中获取HTML页面

时间:2019-06-20 21:46:39

标签: elixir wallaby

我尝试运行fin函数,但由于某种原因我返回nil。 我要搜索的项目必须在那里,如何获取html以查看出了什么问题?

2 个答案:

答案 0 :(得分:1)

我有两个帮助程序,可以接收小袋鼠会话。

第一个将可见文本打印到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

答案 1 :(得分:0)

我不知道这是否是您的问题,但是当我在此html上尝试鼠袋鼠时:

<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()之后加上它),然后小袋鼠会找到该元素。根据{{​​1}}规范,您不能将div标记放在p标记内,而打开的html5标记将导致浏览器进入close the p tag,如下所示:

div

我认为小袋鼠无法解析非法html并找到p标签。您可以尝试在html validator上运行html,然后再尝试使用电子钱包。