我在VCL 32位平台上使用C ++ Builder XE4-pro。我正在使用名为CppWebBrowser的组件来加载JPL网页。我在下面添加了一张网页图片。下面的代码是我加载网页的按钮事件。通过在搜索框中手动输入小行星名称并按Enter键来使用该网页。这会运行一个加载小行星细节的脚本。我需要使用代码运行搜索框。一个样本小行星名称是Eros。有没有办法使用代码为Eros激活此搜索框?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
UnicodeString Full;
Full = "https://ssd.jpl.nasa.gov/sbdb.cgi#top";
CppWebBrowser1->Navigate( Full.c_str() );
}
答案 0 :(得分:1)
页面完全加载后(OnDocumentComplete
事件已被触发),您可以使用浏览器自己的DOM界面查找并填写搜索框,然后提交其包含的表单。
首先查询IHTMLDocument2
界面的Document
属性,然后从那里开始。
IHTMLDocument2
有一个forms
集合,您可以使用该集合枚举页面上的<form>
元素,使用IHTMLDocument3::item()
方法枚举每个表单的<input>
元素,直到您找到所需搜索框的<input>
元素。或者,您可以Document
查询IHTMLDocument3
并使用其getElementById()
或GetElementsByName()
方法直接查找所需的搜索框。
找到搜索元素后,您可以查询IHTMLInputElement
,将其value
属性设置为您想要的任何文本,然后调用其包含的form
'{{ 3}}方法。