C# webBrowser 自动表单提交问题
发布日期:2021-10-03 22:21:31 浏览次数:14 分类:技术文章

本文共 1442 字,大约阅读时间需要 4 分钟。

公司每天都要平凡登录几个特定网站,每次输帐号密码,很是不爽.
利用C# webBrowser 想自动填表提交登录.
结果发现其中有被登录网站表单中的登录按扭没有name名字
表单如下所示:
C# code   <form id="f_login" name="f_login" target="_top" method="post" οnsubmit="return checkInput();">
    
                    <input type="text" name="ID" name="ID"> 
                    <input type="password" id="PASSWD" name="PASSWD">
              
            
                    <input type="submit" tabindex="6" title="登录" value=""/>
              
        </form>
于是造成
 C# code  HtmlElement but = webBrowser1.Document.All["按扭名"];    //选项
                 but.InvokeMember("click");
因为没有登录按据名 所以如上代码无法使用:
尝试使用
C# codeHtmlElement but = webBrowser.Document.GetElementById("submit");
            but.InvokeMember("click");
同样也是无法正常使用.
因为登录按扭在网页中只有一个类型是"submit",而且这个是按扭是网页中唯一的. 我想按类型来获取,应该是有办法的.但是我不道具体办法了. 还请高人赐教.真心感谢.
抓tabindex,然后提交:
HtmlElementCollection submit = webBrowser1.Document.All;
foreach(HtmlElement element in submit)
{
if (element.TabIndex == 6)
{
element.InvokeMember("click");
}
 
你还可以这样:
这个比较有通用性——
HtmlElementCollection submit = webBrowser1.Document.All;
foreach(HtmlElement element in submit)
{
string str = element.GetAttribute("type");
if (str == "submit")
{
element.InvokeMember("click");
}
 
but.InvokeMember("click");
你把click,换成"onclick"试试。我用的就是onclick.
click我没试过,不知道能不能用。
HtmlElementCollection submit = webBrowser1.Document.All;  
  foreach(HtmlElement element in submit)  
  {  
  if (element.TabIndex == 6)  
  {  
  element.InvokeMember("click");  
  }  
  }
这个应该可以找到按钮,然后研究一下它的name,或许可以得到它的命名规则。 
 
 
可以不点击“登录”按钮,直接submit.如下:
webBrowser1.Document.GetElementById("f_login").InvokeMember("submit"); 
 

转载地址:https://blog.csdn.net/lc547913923/article/details/17592721 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C# WinForm开发系列 - WebBrowser
下一篇:C# webBrowser控件使用心得

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月19日 20时42分46秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

cin gt gt a用c语言怎么写写,一初学者问我一问题,C语言的,然后我用笨拙的方法实现cin.putback... 2019-04-21
图片轮播c语言,IOS开发之UIScrollView实现图片轮播器的无限滚动 2019-04-21
c语言中操作数右移一位,Assembly C中的按位运算 2019-04-21
android 回收listview图片内存,用双缓存技术优化listview异步加载网络图片 2019-04-21
html中的em的使用方法,css布局的em的使用方法 2019-04-21
html画笛卡尔爱心,UG/NX 绘制一个爱心模型,你有几种方法能做出来呢? 2019-04-21
centos7重新加载服务的命令_squid代理服务器命中率的提高方法之一 2019-04-21
aps是什么意思_一文看懂ERP、APS和MES 2019-04-21
苹果地图副总裁_苹果发布 iOS 13 预览版,带来这些全新功能 2019-04-21
bert中的sep_在属性级情感分析中结合BERT和语法信息 2019-04-21
qlineedit文本改变时_word排版技巧:如何调整文本和页面的纵横显示 2019-04-21
李宏毅svm_李宏毅-深度学习 2019-04-21
php向mysql上传文件_PHP面向对象封装MySQL操作函数、文件上传 2019-04-21
asme标准最新版本_ASME的螺柱用什么标准 2019-04-21
jmeter录制手机客户端_米亚圆桌录制和回放观看功能全新上线 2019-04-21
hdfs orc格式_处理 HDFS 上的过多小文件的问题? 2019-04-21
缺失magisk正常工作所需的文件_总结了十个工作表看上去很凌乱的原因 2019-04-21
matlab将二值图像与原图重叠_MATLAB--数字图像处理 图像直方图规定化 2019-04-21
ptp输出内容包含什么_免费小程序开发包含哪些内容,相对APP有什么优势 2019-04-21
python re sub 替换多个_Python随笔23:Python基础编程练习题11~12 2019-04-21