为什么第二个红色hr总是不能==s_ok,前面的两个都行?小弟我断点就找出这里有有关问题
为什么第二个红色hr总是不能==s_ok,前面的两个都行?我断点就找出这里有问题
这是向网页中自动输入帐号密码和点击登录的一段程序,但就是没法自动点击登录
for ( int i=0; i< celem; i++ )//循环 through each elment
{
IDispatch* pDisp2;
V_VT(&id) = VT_I4;
V_I4(&id) = i;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
hr = pColl->item( id,index, &pDisp2 );//Get an element
if ( hr == S_OK )
{
IHTMLElement* pElem;
//Ask for an HTMLElemnt interface
hr = pDisp2->QueryInterface(IID_IHTMLElement,(void **)&pElem);
if ( hr == S_OK )
{
BSTR bstr;
IHTMLInputTextElement* pUser;
hr = pDisp2->QueryInterface(IID_IHTMLInputTextElement,(void **)&pUser );
if ( hr == S_OK )
{
pUser->get_name(&bstr);
mStr=bstr;
if(mStr==TEXT("login"))
{
pUser->put_value(bsUser);
}
else if(mStr==TEXT("passwd"))
{
pUser->put_value(bsPW);
}
pUser->Release();
}
else
{
IHTMLInputButtonElement* pButton;
hr = pDisp2->QueryInterface(IID_IHTMLInputButtonElement,(void **)&pButton);
if ( hr == S_OK )//我断点调试发现原来是一到这里就不执行if里 面 的内容,所以我怀疑是hr出了问题,但不知道是怎么出问题了啊!!!!
{
pButton->get_value(&bstr);
mStr=bstr;
if (mStr==TEXT("登录"))
{
pElem->click();
i=celem;
}
pButton->Release();
}
}
pElem->Release();
}
pDisp2->Release();
}
------解决方案--------------------
木有人啊!!!!顶下!!!
------解决方案--------------------
项目release改成debug
------解决方案--------------------
是所有的都改么?还是只改某个指针的?
------解决方案--------------------
不是指针,是你的项目属性。可能你是在release下按的F5,所以会导致调试信息和代码不一致
------解决方案--------------------
原来的就是DEbug,不行。Release试了也不行
------解决方案--------------------
原来的就是DEbug,不行。Release试了也不行
------解决方案--------------------
解决了。。。。多考虑网页的元素顺序和name就好了
这是向网页中自动输入帐号密码和点击登录的一段程序,但就是没法自动点击登录
for ( int i=0; i< celem; i++ )//循环 through each elment
{
IDispatch* pDisp2;
V_VT(&id) = VT_I4;
V_I4(&id) = i;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
hr = pColl->item( id,index, &pDisp2 );//Get an element
if ( hr == S_OK )
{
IHTMLElement* pElem;
//Ask for an HTMLElemnt interface
hr = pDisp2->QueryInterface(IID_IHTMLElement,(void **)&pElem);
if ( hr == S_OK )
{
BSTR bstr;
IHTMLInputTextElement* pUser;
hr = pDisp2->QueryInterface(IID_IHTMLInputTextElement,(void **)&pUser );
if ( hr == S_OK )
{
pUser->get_name(&bstr);
mStr=bstr;
if(mStr==TEXT("login"))
{
pUser->put_value(bsUser);
}
else if(mStr==TEXT("passwd"))
{
pUser->put_value(bsPW);
}
pUser->Release();
}
else
{
IHTMLInputButtonElement* pButton;
hr = pDisp2->QueryInterface(IID_IHTMLInputButtonElement,(void **)&pButton);
if ( hr == S_OK )//我断点调试发现原来是一到这里就不执行if里 面 的内容,所以我怀疑是hr出了问题,但不知道是怎么出问题了啊!!!!
{
pButton->get_value(&bstr);
mStr=bstr;
if (mStr==TEXT("登录"))
{
pElem->click();
i=celem;
}
pButton->Release();
}
}
pElem->Release();
}
pDisp2->Release();
}
------解决方案--------------------
木有人啊!!!!顶下!!!
------解决方案--------------------
项目release改成debug
------解决方案--------------------
是所有的都改么?还是只改某个指针的?
------解决方案--------------------
不是指针,是你的项目属性。可能你是在release下按的F5,所以会导致调试信息和代码不一致
------解决方案--------------------
原来的就是DEbug,不行。Release试了也不行
------解决方案--------------------
原来的就是DEbug,不行。Release试了也不行
------解决方案--------------------
解决了。。。。多考虑网页的元素顺序和name就好了