3,245
社区成员
发帖
与我相关
我的任务
分享
COleVariant name;
CComBSTR tag;
long index;
objAllElement-> get_length(&index);
for(long i=0; i <index; i++)//遍历所有元素,通过id属性获取值
{
name.vt=VT_I4;
name.ChangeType(VT_I4);
name.lVal = i;
IDispatch * pDispatch=NULL;
objAllElement-> item(name,name,&pDispatch);
IHTMLElement* spElement;
pDispatch-> QueryInterface(IID_IHTMLElement, (void**)&spElement);
//BSTR tag;
spElement->get_className(&tag);
CString ss(tag);
if(ss == "login-btn-01")
{
name.vt=VT_BSTR;
name.ChangeType(VT_BSTR);
name.bstrVal=tag;
//spElement->click();
objDocument->put_onclick(name);
//objDocument->getElementById();
}
spElement->Release();
}
IHTMLDocument2 *objDocument=NULL;
CComQIPtr<IHTMLElement, &IID_IHTMLElement>pElement;
objDocument=(IHTMLDocument2*)m_web.get_Document();
CComQIPtr<IHTMLDocument4> spDoc4 = objDocument;
if(spDoc4 == NULL)
return ;
CComPtr<IHTMLEventObj> spEvent;
CComVariant var;
spDoc4->createEventObject(&var, &spEvent);
CComQIPtr<IHTMLEventObj2> spEvent2(spEvent);
CComBSTR eventName = "onclick";
spEvent2->put_type(eventName);
CComQIPtr<IHTMLElement3, &IID_IHTMLElement3> spEle3(pElement);
VARIANT_BOOL varbResult;
CComVariant varEvent = spEvent;
hr = spEle3->fireEvent(eventName, &varEvent, &varbResult);
varbResult =-13108
VARIANT name;
CComBSTR tag;
long index;
objAllElement-> get_length(&index);
name.vt=VT_I4;
for(long i=0; i <index; i++)//遍历所有元素,通过id属性获取值
{
name.lVal = i;
IDispatch * pDispatch=NULL;
objAllElement-> item(name,name,&pDispatch);
IHTMLElement* spElement;
pDispatch-> QueryInterface(IID_IHTMLElement, (void**)&spElement);
BSTR tag;
spElement->get_className(&tag);
CString ss(tag);
if(ss == "login-btn-01")
{
MessageBox("找到按钮类名")!
}
spElement->Release();
}
HRESULT hr;
LPUNKNOWN lpUnknown;
LPUNKNOWN lpUnknownWB = NULL;
LPUNKNOWN lpUnknownDC = NULL;
IHTMLDocument3* pDoc3 =NULL;
IHTMLElementCollection *objAllElement=NULL;
IHTMLDocument2 *objDocument=NULL;
IHTMLElementCollection *pElement3;
CString strUrl,strTemp;
lpUnknown = m_web.GetControlUnknown();
ASSERT(lpUnknown); if (lpUnknown)
{
hr = lpUnknown->QueryInterface(IID_IUnknown,(LPVOID*)&lpUnknownWB);
ASSERT(SUCCEEDED(hr));
if (FAILED(hr))
return;
hr = pDisp->QueryInterface(IID_IUnknown, (LPVOID*)&lpUnknownDC);
ASSERT(SUCCEEDED(hr));
if (SUCCEEDED(hr) && lpUnknownWB == lpUnknownDC)
{ // The document has finished loading.
strUrl=m_web.get_LocationURL();
if (strUrl.IsEmpty())
{
return ;
}
objDocument=(IHTMLDocument2*)m_web.get_Document();
objDocument->get_all(&objAllElement);
if (strUrl==_T("https://43.4.213.11:2004/"))
{
CComPtr<IDispatch>pDisp;
objAllElement->item(COleVariant(_T("p_pass")),COleVariant((long)0),&pDisp);
CComQIPtr<IHTMLElement, &IID_IHTMLElement>pElement;
if(pDisp==NULL)
{
return;
}
else
{
pElement=pDisp;
pElement->put_innerText(_T("123")); //填充表单
}
COleVariant name;
CComBSTR tag;
long index;
objAllElement-> get_length(&index);
for(long i=0; i <index; i++)//遍历所有元素,通过id属性获取值
{
name.vt=VT_I4;
name.ChangeType(VT_I4);
name.lVal = i;
IDispatch * pDispatch=NULL;
objAllElement-> item(name,name,&pDispatch);
IHTMLElement* spElement;
pDispatch-> QueryInterface(IID_IHTMLElement, (void**)&spElement);
//BSTR tag;
spElement->get_className(&tag);
CString ss(tag);
if(ss == "login-btn-01")
{
name.vt=VT_BSTR;
name.ChangeType(VT_BSTR);
name.bstrVal=tag;
//spElement->click();
objDocument->put_onclick(name);
//objDocument->getElementById();
}
spElement->Release();
}
}
}
}
if (lpUnknownWB)
lpUnknownWB->Release();
if (lpUnknownDC)
lpUnknownDC->Release();
这部分处理的全部代码 现在是无法自动输入密码,按钮也没办法触发 但是我设置一个MessageBox的话 点完弹窗 密码框这个时候还是有密码的