Error “The object invoked has disconnected from its clients” - automate IE 8 with python and win32com

空扰寡人 提交于 2019-12-01 03:30:33

On IE9, you need to lower security settings to make the script work:

IE9 -> Internet Options -> Security -> Trusted Sites    : Low
IE9 -> Internet Options -> Security -> Internet         : Medium + unchecked Enable Protected Mode
IE9 -> Internet Options -> Security -> Restricted Sites : unchecked Enable Protected Mode
David Lucas

Wow. I have been fighting with a script that was working for 3 days trying to figure out why it did not even reach the 10th line. Microsoft has been auto-updating Internet Explorer silently to IE10 throughout our organisation and it has caused major headaches for the CRM developers. I noticed now that the settings has been reset to default and that protected mode has been turned on.

One of the most useful things you can try while developing your site is pushing F12 and setting the IE version to other versions. For example, your site used to work in IE9 but broke in 10. This allows you to be running IE10 and test your code in multiple versions. I am still trying to find a way to force certain websites to open in specific versions of internet explorer without having to push F12 every time.

I could not change my ie security setting but i found another solution that works in vbscript (dont ask me why i am using that :D)!

http://go-gaga-over-testing.blogspot.co.uk/2013/06/the-object-invoked-has-disconnected.html

  Set ie = WScript.CreateObject("InternetExplorer.Application")

  With ie
       hwnd = .hwnd
       .Navigate theURL
  End With

  Set oShell = CreateObject("Shell.Application")

  For Each Wnd In oShell.Windows
         If hwnd = Wnd.hwnd Then Set ie = Wnd
  Next 

I had somewhat similar issue, what I did was (however it was using mshtml and SHDocVw in C#.NET):

  • Lowered the security (in security tab of Internet options) levels in internet explorer (just as you @Skarab had tried doing) ,
  • Initialized internet explorer variable to a null value like:

    /*INITIALIZE THE BROWSER VARIABLE TO NULL VALUE*/
    SHDocVw.InternetExplorer ie =null;
    ie = new SHDocVw.InternetExplorer();
    

hope this helps...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!