[Bug 30353] selenium 'InternetExplorerDriver' fails to retrieve IHTMLDocument COM object reference as LRESULT
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri May 2 05:35:43 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=30353
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
Summary|IEDriver from selenium |selenium
|crash |'InternetExplorerDriver'
| |fails to retrieve
| |IHTMLDocument COM object
| |reference as LRESULT
--- Comment #10 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
the instructions need to be updated ...
You obviously need to download the actual server binary to have
'webdriver.Ie()' instancing work.
'easy_install selenium' doesn't do that automatically for you.
Download:
https://selenium-release.storage.googleapis.com/2.41/IEDriverServer_Win32_2.41.0.zip
(and put it into path visible in PATH).
I didn't see bug 30352 (wininet?) please retest.
The selenium driver basically does this:
http://www.moshkin.info/blog/accessing-web-browsers-window-contents-from-another-process
--- snip ---
IHTMLDocument* IHTMLDocumentFromHWND(HWND hWnd)
{
UINT WM_HTML_GETOBJECT = RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
if (WM_HTML_GETOBJECT == 0)
return NULL;
DWORD lResult = 0;
SendMessageTimeout( hWnd, WM_HTML_GETOBJECT, 0, 0, SMTO_ABORTIFHUNG, 1000,
&lResult );
if (lResult == NULL)
return NULL;
IHTMLDocument* HTMLDocument;
HRESULT hr = ObjectFromLresult( lResult, IID_IHTMLDocument, 0,
(void**)&HTMLDocument );
if (FAILED(hr))
return NULL;
return HTMLDocument;
}
--- snip ---
Relevant trace log:
--- snip ---
...
0037:Call user32.RegisterWindowMessageW(100e2a20 L"WM_HTML_GETOBJECT")
ret=10092456
0037:Ret user32.RegisterWindowMessageW() retval=0000c042 ret=10092456
0037:Call KERNEL32.LoadLibraryW(100e2a44 L"OLEACC.DLL") ret=10092464
0037:Call PE DLL (proc=0x7dde7040,module=0x7dde0000
L"oleacc.dll",reason=PROCESS_ATTACH,res=(nil))
0037:trace:oleacc:DllMain 0x7dde0000, 1, (nil)
...
0037:Ret KERNEL32.LoadLibraryW() retval=7dde0000 ret=10092464
...
0037:Call
user32.SendMessageTimeoutW(000200a4,0000c042,00000000,00000000,00000002,000003e8,014ad774)
ret=10090fd9
...
0039:Call user32.PeekMessageW(0033f35c,00000000,00000000,00000000,00000001)
ret=6af030c7
0039:Call window proc 0xf697c886
(hwnd=0x200a4,msg="WM_HTML_GETOBJECT",wp=00000000,lp=00000000)
0039:Call user32.GetPropW(000200a4,f69a7308 L"THIS") ret=f697c8e9
0039:Ret user32.GetPropW() retval=0016e968 ret=f697c8e9
0039:Call user32.DefWindowProcW(000200a4,0000c042,00000000,00000000)
ret=f697cb0f
0039:Ret user32.DefWindowProcW() retval=00000000 ret=f697cb0f
0039:Ret window proc 0xf697c886
(hwnd=0x200a4,msg="WM_HTML_GETOBJECT",wp=00000000,lp=00000000) retval=00000000
0039:Ret user32.PeekMessageW() retval=00000001 ret=6af030c7
...
0039:Call user32.TranslateMessage(0033f35c) ret=69d80b8d
0039:Ret user32.TranslateMessage() retval=00000000 ret=69d80b8d
0039:Call user32.DispatchMessageW(0033f35c) ret=69d80b99
0037:Ret user32.SendMessageTimeoutW() retval=00000001 ret=10090fd9
0039:Call window proc 0x69d80a44
(hwnd=0x100a8,msg="nsAppShell:EventID",wp=00000000,lp=012d0998)
0037:Call KERNEL32.GetProcAddress(7dde0000,100e303c "ObjectFromLresult")
ret=10090fe8
0039:Ret window proc 0x69d80a44
(hwnd=0x100a8,msg="nsAppShell:EventID",wp=00000000,lp=012d0998) retval=00000001
0039:Ret user32.DispatchMessageW() retval=00000001 ret=69d80b99
...
0037:Call oleacc.ObjectFromLresult(00000000,100de1ec,00000000,014ad830)
ret=10091000
0037:trace:oleacc:ObjectFromLresult 0 {332c4425-26cb-11d0-b483-00c04fd90119} 0
0x14ad830
0037:Call KERNEL32.GlobalGetAtomNameW(00000000,014ad5a2,00000027) ret=7dde5f4c
0037:Ret KERNEL32.GlobalGetAtomNameW() retval=00000000 ret=7dde5f4c
0037:Ret oleacc.ObjectFromLresult() retval=80004005 ret=10091000
--- snip ---
$ wine --version
wine-1.7.17-175-gc1bf61e
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list