C# webBrowser无法赋值SetAttribute

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# webBrowser无法赋值SetAttribute相关的知识,希望对你有一定的参考价值。

在这个网页中http://www.vidc.info/
我要对用户名和密码框进行赋值
webBrowser1.Document.GetElementById("ctl00_body_TextBox_UserName").SetAttribute("value", “aaa”);
webBrowser1.Document.GetElementById("ctl00_body_TextBox_PassWord").SetAttribute("value", “bbb”);
按以上程序输入的结果和手动在页面中输入的效果不一样,这是为什么?
找到一个JS程序
<script type="text/javascript">

$(function ()

$("input[class='loginInput']").watermark('用户名', '用户名');

$("input[class='loginPassword']").watermark('密码', '密码');

);

</script>

怎么可以屏蔽掉这个js呢?

参考技术A 看看是不是JS为程序加载了焦点事件或者点击事件,如果有再执行一次JS就行了。。追问

请教如何再运行一次JS,网页客户端源文件大家都能看到,服务器端我没程序。

追答

你这样,比如页面有这样的JS代码

// Function Without Parameters
function JavaScriptFunctionWithoutParameters()
outputID.innerhtml = "JavaScript function called!";
return 10;


你可以在你的Webbrowser程序中执行
private void button1_Click(object sender, EventArgs e)

string result = this.webBrowser1.Document.InvokeScript("JavaScriptFunctionWithoutParameters").ToString();
MessageBox.Show(result);

追问

怎么可以知道标签内还有呢?我如果在标签里输入过值再用这个方法就可以对它赋值了,为什么?

参考技术B webBrowser1.Document.GetElementById("ctl00_body_TextBox_UserName").InnerText
用这个属性赋值追问

试过了,效果一样

追答

我就是这样赋值的.
猜测,页面中是添加有JS效果的.你检查一下

追问

是有js效果,那怎么处理可以不受js影响呢?

以上是关于C# webBrowser无法赋值SetAttribute的主要内容,如果未能解决你的问题,请参考以下文章

解决c#利用WebBrowser截取验证码图片无法获取的问题

vb下webbrowser的textarea标签无法赋值

C# Uwp app webbrowser 控件无法获取设备位置

关于 C# WebBrowser 当前线程不在单线程单元中,因此无法实例化 的错误

C#使用webbrowser 获取post数据的问题

C# WPF WebBrowser控件调用Refresh()函数出现异常,导致程序“未响应”并无法继续运行