mechanize how to get current url

15,440
next_page.uri.to_s 

See http://www.rubydoc.info/gems/mechanize/Mechanize/Page/Link#uri-instance_method and http://ruby-doc.org/stdlib-2.4.1/libdoc/uri/rdoc/URI.html

For testing purposes, I did the following in irb:

require 'mechanize'
@agent = Mechanize.new

page = @agent.get('http://news.ycombinator.com/news')
=> #<Mechanize::Page
 {url #<URI::HTTP:0x00000001ad3198 URL:http://news.ycombinator.com/news>}
 {meta_refresh}
 {title "Hacker News"}
 {iframes}
 {frames}
 {links
  #<Mechanize::Page::Link "" "http://ycombinator.com">
  #<Mechanize::Page::Link "Hacker News" "news">
  #<Mechanize::Page::Link "new" "newest">
  #<Mechanize::Page::Link "comments" "newcomments">
  #<Mechanize::Page::Link "ask" "ask">
  #<Mechanize::Page::Link "jobs" "jobs">
  #<Mechanize::Page::Link "submit" "submit">
  #<Mechanize::Page::Link "login" "newslogin?whence=%6e%65%77%73">
  #<Mechanize::Page::Link "" "vote?for=3803568&dir=up&whence=%6e%65%77%73">
  #<Mechanize::Page::Link
   "Don’t Be Evil: How Google Screwed a Startup"
   "http://blog.hatchlings.com/post/20171171127/dont-be-evil-how-google-screwed-a-startup">
  #<Mechanize::Page::Link "mikeknoop" "user?id=mikeknoop">
  #<Mechanize::Page::Link "64 comments" "item?id=3803568">
  #<Mechanize::Page::Link "" "vote?for=3802515&dir=up&whence=%6e%65%77%73">
  # Omitted for brevity...

next_page.uri
 => #<URI::HTTP:0x00000001fa7818 URL:http://news.ycombinator.com/news2> 

next_page.uri.to_s
 => "http://news.ycombinator.com/news2" 
Share:
15,440
megas
Author by

megas

https://www.linkedin.com/in/serhii-hopkalo-57619413/

Updated on June 14, 2022

Comments

  • megas
    megas almost 2 years

    I have this code

    require 'mechanize'
    @agent = Mechanize.new
    page = @agent.get('http://something.com/?page=1')
    next_page = page.link_with(:href=>/^?page=2/).click
    

    As you can see this code should go to the next page.

    The next_page should have url http://something.com/?page=2

    How to get current url for next_page?

  • pguardiario
    pguardiario about 12 years
    That's the url of the link, but the current url after the link is followed (and redirection happens) would be: @agent.page.uri.to_s