如何使用 phantomjs 浏览器在水豚中获取完整 url 和哈希值

how to get full url along with hash in capybara with phantomjs browser

我正在抓取一个页面,我使用 capybara 和 phantomjs 浏览器打开它。

然后我按了几个按钮,提交了一个表单并登陆了另一个页面。我想获得整个 url 以及此页面的哈希值。我怎样才能得到整个 url 和散列?

例如,假设带散列的完整 url 是 http://www.exxxxample.com/hello?a=b&c=d#somestuff=87

似乎我只能得到没有散列部分的 url (somestuff=87) 但是它应该是可能的,因为我有幻影。那么有没有办法使用phantom和一些js代码来读取hash呢?

var url = page.evaluate(function(){
    return document.location.href;
});

水豚 current_url returns 当前完整 url 包括 "hash"(片段)

sess = Capybara::Session.new(:poltergeist)
sess.visit("https://github.com/teamcapybara/capybara")
sess.click_link('Drivers')
puts sess.current_url # => https://github.com/teamcapybara/capybara#drivers

如果您只需要提取片段,您可以使用 URI::parse

URI::parse(sess.current_url).fragment