gpt4 book ai didi

Delphi Twebbrowser 更改文本框的值。

转载 作者:行者123 更新时间:2023-12-03 15:09:17 26 4
gpt4 key购买 nike

我在更改 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 标准模式和以前的模式中,此方法对 IDNAME 属性执行不区分大小写的匹配,这可能会生成 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 元素,并且不支持方法 value。 (因此出现错误消息“自动化对象不支持方法'值'”)。

关于Delphi Twebbrowser 更改文本框的值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com