[python-win32] How do I get the URL of the active tab in Internet Explorer

He Jibo hejibo at gmail.com
Tue Nov 30 18:42:52 CET 2010


Thanks so much for your valuable information. I will only need the url of a
browser when it is in the front. I am going to try SendKey, it seems to be a
good way to go. Have a nice day!

---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info



On Tue, Nov 30, 2010 at 9:09 AM, Mike Driscoll
<mdriscoll at co.marshall.ia.us>wrote:

>  On 1:59 PM, He Jibo wrote:
>
> Hi,
> I am writing a small program, which needs to get the URL of the active
> tab in either of firefox, internet exploerer or chrome.
> My need is similar as the one posted at,
>
> http://stackoverflow.com/questions/3631216/how-do-i-get-the-url-of-the-visible-tab-in-firefox-
> ie-chrome
>
> I did a lot of Googling, and get the following code. The following
> code can get the url of the first tab in internet explorer. My
> question is, how can I get the url of the current active tab? Thanks.
>
> '''
>
> http://efreedom.com/Question/1-2555905/Get-Internet-Explorer-Address-Bar-Python
> http://blogs.msdn.com/b/oldnewthing/archive/2005/07/05/435657.aspx
> http://mail.python.org/pipermail/python-win32/2004-June/002040.html
>
> http://code.activestate.com/recipes/302324-browser-automation-tool-py-class-file/
> '''
> from win32com.client import Dispatch
> import win32api, win32con,win32gui
>
>
> SHELL = Dispatch("Shell.Application")
>
> def get_ie(shell):
>    for win in shell.Windows():
> #        print win
>        if win.Name == "Windows Internet Explorer":
>            return win
>    return None
>
> def main():
>    ie = get_ie(SHELL)
>    if ie:
>        print ie.LocationURL
>        print ie.LocationName
>        print ie.ReadyState
>        print ie
>        print ie.Document.title
>        print ie.Document.location
>        print ie.Document.forms
>
> #        title = win32gui.GetWindowText(ie)
> #        print title
>
>    else:
>        print "no ie window"
>
> if __name__ == '__main__':
>    main()
> ---------------------------
> He Jibo
> Department of Psychology,
> Beckman Institute for Advanced Science and Technology
> University of Illinois, Urbana Champaign,
> 603 East Daniel St.,
> Champaign, IL 61820
> website: www.hejibo.info
>
>
> It will probably be frowned on here, but one of the easiest ways would be
> to use SendKeys in combination with some Windows hackery. I have attached
> some code I came up with after getting help from several of the fine people
> on this list. It shows how to bring a window into focus by just passing in
> an expected string. In this case, you would want to use something like
> "Windows Internet Explorer" and have it search for that.
>
> Once that's in focus, you can use the SendKeys package (
> http://www.rutherfurd.net/python/sendkeys/) to send an ALT+D to select the
> url and then CTRL+C to copy it. Then you can use the win32clipboard module
> from PyWin32 to grab the text from the clipboard.
>
> It's a hack, but it's kind of fun. Of course, you can't use your PC while
> the script runs or you might interrupt the process and send the keys to the
> wrong window.
>
>
> --
> Mike Driscoll
> Applications Specialist
> Blog:   http://blog.pythonlibrary.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20101130/a442d78e/attachment.html>


More information about the python-win32 mailing list