页面元素分析,求解
用Mshtml和IWebBrowser2时遇到了麻烦:
CComPtr<IWebBrowser2> web_brower;
IHTMLDocument2 *disp_document2;
web_brower->get_Document((IDispatch* *)&disp_document2);
IHTMLElementCollection *disp_forms;
disp_document2->get_forms(&disp_forms);
到这一步时还没出问题。接下来....
_variant_t name( "input");
_variant_t ind;
ind.vt=VT_EMPTY;
//ind.intVal=0;
IDispatch *dispx;
disp_forms->item(name,ind,&dispx);
到这里出问题了,指针dispx为NULL。
从网上搜了些帖子,依然无果,抓狂啊抓狂,跪求解决方法
[解决办法]
COM操作,每一步都需要判断一下是否执行成功,你先确认一下get_forms这一步是否执行成功了?
简单的判断方法:
HRESULT hr = disp_document2->get_forms(&disp_forms);
if (SUCCEEDED(hr))
{
// 执行成功
}
[解决办法]
这样试试:
VARIANT vID, vTemp;vID.vt = VT_BSTR;vID.bstrVal = L"input";disp_forms->item(vID, vTemp, &dispx);