如何在 wallaby 中获取 html 页面
How to get html page in wallaby
我尝试 运行 fin 函数,但由于某种原因我返回 nil。
我搜索的项目必须在那里,我怎样才能得到 html 看看哪里出了问题?
我不知道这是否是你的问题,但是当我尝试 wallaby 时 html:
<p class="results"><div class="green">That's all folks!</div></p>
用这个 find()
:
find(css(".results", count: 1))
我收到错误:
** (Wallaby.QueryError) Expected to find 1, visible element that matched the css '.results' but 0, visible elements were found.
但是,如果我将 html 更改为:
<div class="results"><span class="green">That's all folks!</span></div>
并且我使用相同的 find()
(顺便说一句,它不是 return 列表,所以不要在 List.first()
之后使用),然后 wallaby 确实找到了元素.根据 html5
规范,您不能将 div 标签放在 p 标签内,开始的 div
标签将导致浏览器 close the p tag,如下所示:
HERE
|
V
<p class="results"></p><div class="green">That's all folks!</div></p>
我认为 wallaby 无法解析非法 html 并找到 p 标签。您可以先通过 html validator 尝试 运行 您的 html,然后再尝试 wallaby。
我有两个接收 wallaby 会话的辅助函数。
第一个将可见文本打印到 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
通过返回会话,这些函数可以在通常的 wallaby 之间使用 queries/assertions:
session
|> visit("/example/page")
|> print_page_text()
|> assert_text("Hello World!")
另一个有用的函数是Wallaby.Browser.take_screenshot/2
我尝试 运行 fin 函数,但由于某种原因我返回 nil。 我搜索的项目必须在那里,我怎样才能得到 html 看看哪里出了问题?
我不知道这是否是你的问题,但是当我尝试 wallaby 时 html:
<p class="results"><div class="green">That's all folks!</div></p>
用这个 find()
:
find(css(".results", count: 1))
我收到错误:
** (Wallaby.QueryError) Expected to find 1, visible element that matched the css '.results' but 0, visible elements were found.
但是,如果我将 html 更改为:
<div class="results"><span class="green">That's all folks!</span></div>
并且我使用相同的 find()
(顺便说一句,它不是 return 列表,所以不要在 List.first()
之后使用),然后 wallaby 确实找到了元素.根据 html5
规范,您不能将 div 标签放在 p 标签内,开始的 div
标签将导致浏览器 close the p tag,如下所示:
HERE
|
V
<p class="results"></p><div class="green">That's all folks!</div></p>
我认为 wallaby 无法解析非法 html 并找到 p 标签。您可以先通过 html validator 尝试 运行 您的 html,然后再尝试 wallaby。
我有两个接收 wallaby 会话的辅助函数。
第一个将可见文本打印到 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
通过返回会话,这些函数可以在通常的 wallaby 之间使用 queries/assertions:
session
|> visit("/example/page")
|> print_page_text()
|> assert_text("Hello World!")
另一个有用的函数是Wallaby.Browser.take_screenshot/2