2 reallmy2 reallmy2 于 2014.12.16 21:09 提问

C#的WebBrowser操作iframe

小弟想用WebBrowser控件来操作QQ空间的留言板,完成自动留言并点击提交按钮,目前提交按钮功能已经实现,但是往留言板中写文字还没有实现,哪位大神帮帮忙,我的代码如下

if (!webBrowser1.IsBusy)//判断有没有加载新的文档
{
HtmlElement html_input1 = webBrowser1.Document.Window.Frames["tgb"].Document.All["veditor1_Iframe"];
html_input1.SetAttribute("value", "google");//这步不好使

HtmlElement searchButton = webBrowser1.Document.Window.Frames["tgb"].Document.All["btnPostMsg"];//获取到iframe id为tgb下面的button
searchButton.InvokeMember("click");//这步好使

我发现veditor1_Iframe也是一个iframe的id,也就是iframe“tgb”里面又有一个iframe“veditro1_Iframe”,并且里面没有扎到输入框的id,请问这时怎么去寻找这个输入框并给它赋值呢??

3个回答

save4me
save4me   Ds   Rxr 2014.12.16 23:17
已采纳

根据qq空间批量留言的代码的这段js代码,说明不是Input,而是div,所以使用InnerHTML

reallmy2
reallmy2 好的 我试试 我现在找不到那个输入框的id了 我在研究研究 谢谢啦
3 年多之前 回复
caozhy
caozhy   Ds   Rxr 2014.12.16 21:36

用IE的F12,看下框架有没有嵌套,元素名是否正确。

reallmy2
reallmy2 谢啦,我正在看,发现veditor1_Iframe也是一个iframe的id,我是初学者,还在慢慢摸索,谢谢大神!
3 年多之前 回复
save4me
save4me   Ds   Rxr 2014.12.16 23:11

检查一下留言是Input还是textarea,如果是textarea,就不是设置value,而是InnerText或者InnerHTML。
if (html_input1 != null)
{
html_input1.InnerText = "This is a test";
}

reallmy2
reallmy2 好的 我试试 谢谢大神 我是初学者 还在摸索中 现在发现那个veditor1_Iframe是iframe的id,我再去试试
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!