cppwebbrowser基础问题

wanganfuz 2009-10-27 11:25:14

<td>
<input id="offlineMailNoYTO" class="mailNo:offline" type="text" value='' />
</td>
<td></td>
<td>
<button id="YTO" class="confirm logis:offlineConfirm">确认</button>
</td>

网页源代码如上,现在已知确认的id是yto,怎么去点击这个button。
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanganfuz 2009-11-09
  • 打赏
  • 举报
回复
好久没来忘记了,能给点直接简单的吗?弟愚昧,有些东西用了不行
tiancanyue 2009-10-27
  • 打赏
  • 举报
回复
帮顶
laowang2 2009-10-27
  • 打赏
  • 举报
回复
if(pDisp==CppWebBrowser1->DefaultDispatch)
{
VARIANT id, index, id1, index1;
IDispatch *spDispatch=0;
IHTMLDocument2 *pDoc2=NULL;
IHTMLElement *pElement=0;
IHTMLElementCollection *pElementCol=0;
IHTMLFormElement *pFormElement=0;
IHTMLInputElement *pInputElement=0;

if (!CppWebBrowser1->Busy && CppWebBrowser1->Document &&
AnsiString(CppWebBrowser1->LocationURL) != "about:blank" )
if (SUCCEEDED(CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDoc2)))
if ( SUCCEEDED ( pDoc2->get_forms ( &pElementCol ) ) ) // 得到form
{
long p = 0;
if ( SUCCEEDED ( pElementCol->get_length ( &p ) ) )
{ // 哪一个form
if ( p != 0 )
{
for ( long i = 0; i <= p-1; i++ )
{
V_VT ( &id ) = VT_I4;
V_I4 ( &id ) = i;
V_VT ( &index ) = VT_I4;
V_I4 ( &index ) = 0;

if ( SUCCEEDED ( pElementCol->item ( id, index, &spDispatch ) ) )
{
if
(
SUCCEEDED ( spDispatch->QueryInterface ( IID_IHTMLFormElement,
( void ** ) &pFormElement ) )
)
{
long q = 0;
if ( SUCCEEDED ( pFormElement->get_length ( &q ) ) )
{ // 得到form中的控件个数
for ( long j = 0; j <= (q - 1); j++ )
{
V_VT ( &id ) = VT_I4;
V_I4 ( &id ) = j;
V_VT ( &index ) = VT_I4;
V_I4 ( &index ) = 0;
if ( SUCCEEDED ( pFormElement->item ( id, index, &spDispatch ) ) )
{
if
(
SUCCEEDED ( spDispatch->QueryInterface ( IID_IHTMLElement,
( void ** ) &pElement ) )
)
{
if
(
SUCCEEDED ( spDispatch->QueryInterface ( IID_IHTMLInputElement,
( void ** ) &pInputElement ) )
)
{

// AfxMessageBox("已经获取IHTMLInputTextElement");
BSTR Value;
BSTR Type;
BSTR Id;
BSTR Name;

pInputElement->get_type ( &Type ); // 获取类型

//
// pInputElement->get_value(&
// Value); //获取值
//
pElement->get_id ( &Id ); // 获取Id的方法不一样
///

//
// pInputElement->get_name(&
// Name); //获取它的名字
//
AnsiString tempID,tempName;
tempID = AnsiString ( Id ).UpperCase ();
tempName = AnsiString ( Type ).UpperCase ();
if
(
tempName != NULL
&& ((tempName.Trim ()).Length () > 0)

)
{
// tempName = AnsiString ( Type ).UpperCase ();
if ( tempName == "TEXT" ) // 获取和设置文本框的值
{
if ( tempID == "USERNAME" ) ///
{

// WideString temp = SValue;
pInputElement->put_value ( (WideString) Form1->sUserName );

}
}
else if ( tempName == "PASSWORD" ) // 获取和设置密码框的值
{
if ( tempID == "PASSWORD" ) ///

{
pInputElement->put_value ( (WideString) Form1->sPassword );
}
}
else if ( tempName == "RADIO" ) // 获取和设置单选的值
///
{
pElement->click (); // 模拟单击
}
else if ( tempName == "CHECKBOX" ) // 获取和设置多选框的值
///
{
pElement->click (); // 模拟单击
// pInputElement->put_checked(j);
}
else if ( tempName == "BUTTON" ) // 非提交按钮
{

pElement->click(); //模拟单击
}
else if ( tempName == "SUBMIT" ) // 提交按钮
{
pElement->click(); //模拟单击

}

// break;
} // 如果不符,则不做处理
///

pInputElement->Release ();
}
else // 不是input框
{
}

pElement->Release ();
} // if pelement

spDispatch->Release ();
}
}
}

pFormElement->Release ();
}

spDispatch->Release ();
}
}
}
}
}

if ( pDoc2 )
pDoc2->Release ();


}
wanganfuz 2009-10-27
  • 打赏
  • 举报
回复
哎,又没人吗?

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧