How do I get the URL of the active tab in Firefox/IE/Chrome?

H

He Jibo

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/3631
.... -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/ ... Bar-Python
http://blogs.msdn.com/b/oldnewthing/arc ... 35657.aspx
http://mail.python.org/pipermail/python ... 02040.html
http://code.activestate.com/recipes/302 ... lass-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()
 
T

Tim Harig

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.

It would be beneficial to know what your ultimate goal is. The
"InternetExplorer.Application" automation object doesn't contain any way to
manipulate tabs directly; but, there are likely less direct methods of
achieving whatever you are trying to accomplish if you let us know what
that is.
 
M

Michel Claveau - MVP

Hello!
The "InternetExplorer.Application" automation object doesn't contain
any way to manipulate tabs directly

False. Try this example:
import win32com.client
for instance in win32com.client.Dispatch('{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'):
print instance," URL :",instance.LocationURL

@-salutations
 
T

Tim Harig

Hello!


False. Try this example:
import win32com.client
for instance in win32com.client.Dispatch('{9BA05972-F6A8-11CF-A442-00A0C90A8F39}'):
print instance," URL :",instance.LocationURL

A Shell collection object != a InternetExplorer.Application object.
The problem with using a ShellWindows object is that you could easily
connect to the wrong instance, especially since the OP doesn't know the
LocationURL of the instance that he is looking for. That is why I asked
for clarification. Once we know what the OP is trying to do, we can
make sure that he has a reliable method to connect to the proper instance.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,989
Messages
2,570,207
Members
46,782
Latest member
ThomasGex

Latest Threads

Top