[python-win32] How do I get the URL of the active tab in Internet Explorer
He Jibo
hejibo at gmail.com
Wed Dec 1 01:37:32 CET 2010
Thanks. Following your link, I get the following code in C#, The following
function GetActiveTabIndex seems to what I need. But I do not know how to do
it in python. Any ideas? Thanks.
http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/03a8c835-e9e4-405b-8345-6c3d36bc8941
public int GetActiveTabIndex(IntPtr ieHandle)
{
AccessibleObjectFromWindow(GetDirectUIHWND(ieHandle),
OBJID.OBJID_WINDOW,
ref accessible);
if (accessible == null)
throw new Exception();
var index = 0;
var ieDirectUIHWND = new IEAccessible(ieHandle);
foreach (IEAccessible accessor in ieDirectUIHWND.Children)
{
foreach (var child in accessor.Children)
{
foreach (var tab in child.Children)
{
object tabIndex = tab.accessible.get_accState(0);
if ((int)tabIndex == IE_ACTIVE_TAB)
return index;
index++;
}
}
}
return -1;
}
---------------------------
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 4:00 PM, sharpblade <sharpblade1 at gmail.com> wrote:
> This might be of some help:
>
> http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/e3a501d6-2163-4cc0-be2d-5011e7fa9613/
> <http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/e3a501d6-2163-4cc0-be2d-5011e7fa9613/>Check
> out Dan Morris's post, or T E dixons.
>
> On Tue, Nov 30, 2010 at 5:42 PM, He Jibo <hejibo at gmail.com> wrote:
>
>> 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
>>>
>>
>>
>> _______________________________________________
>> python-win32 mailing list
>> python-win32 at python.org
>> http://mail.python.org/mailman/listinfo/python-win32
>>
>>
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org
> http://mail.python.org/mailman/listinfo/python-win32
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20101130/e9847fc7/attachment.html>
More information about the python-win32
mailing list