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