加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi Twebbrowser更改文本框的值.

发布时间:2020-12-15 09:32:07 所属栏目:大数据 来源:网络整理
导读:我在twebbrowser中更改文本框的值有些困难.我试过WebBrowser1.OleObject.Document.getElementById(‘verification_control_0′).value:=’mytext’;和其他一些方法,但它似乎不起作用. 网站代码: div id="verification_control_0" class="verification_cont
我在twebbrowser中更改文本框的值有些困难.我试过WebBrowser1.OleObject.Document.getElementById(‘verification_control_0′).value:=’mytext’;和其他一些方法,但它似乎不起作用.

网站代码:

<div id="verification_control_0" class="verification_control">
 <div class="smalltext">
 What are the first 3 letters of our website's name?:<br />
 <input type="text" name="register_vv[q][71]" size="30" value=""  tabindex="6"    class="input_text" />
  </div>
 </div>

如果你能告诉我如何更改< input type =“text”中的值name =“register_vv [q] [71]”size =“30”value =“”tabindex =“6”class =“input_text” />我非常感激.
感谢阅读和所有回复.

解决方法

试试这个:

procedure TForm1.Button1Click(Sender: TObject);
var
  col: IHTMLElementCollection;
  el: IHTMLInputElement;
begin
  col := (WebBrowser1.Document as IHTMLDocument3).getElementsByName('register_vv[q][71]');
  if col.length <> 0 then
  begin
    el := col.item(0,0) as IHTMLInputElement;
    el.value := 'mytext';
  end;
end;

在IE8标准模式下,getElementById仅对ID属性执行区分大小写的匹配.
在IE7标准模式和以前的模式中,此方法对ID和NAME属性执行不区分大小写的匹配,这可能会产生unexpected results.

因此,如果您的TWebBrowser使用IE7标准模式和以前的模式getElementById也应该工作:

procedure TForm1.Button2Click(Sender: TObject);
var
  el: IHTMLElement;
  inputElement: IHTMLInputElement;
begin
  el := (WebBrowser1.Document as IHTMLDocument3).getElementById('register_vv[q][71]');
  if Assigned(el) then
    if Supports(el,IID_IHTMLInputElement,inputElement) then
      inputElement.value := 'mytext';
end;

使用getElementsByName集合按NAME定位元素应该是首选解决方案.

编辑:
@SertacAkyuz第一条评论:

WebBrowser1.OleObject.Document.getElementByID('register_vv[q][71]').Value:='tes??t';

我非常确定OP没有测试你的代码(默认情况下应该可以工作,除非OP明确改变IE浏览模式),而是使用了getElementByID(‘verification_control_0’) – 这是一个DIV元素,并且没有支持方法值. (因此自动化对象不支持错误消息“方法’值”).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读