怎样用WebBrowser自动填写这网页的登陆密码框

qq286106571 2010-11-27 09:59:56
https://login.taobao.com/member/login.jhtml
淘宝的密码 我用

webBrowser1.Document.GetElementById("Password_Edit_IE").InnerHtml="值";

//得到了密码框想给他赋值结果提示

“此类型的 HtmlElement 不支持属性”

- -哪位大拿大哥 。。帮小弟解决下。我新手。。


有人用Delphi语言解决了 可是= =我不会~
我只懂C# 和java~~

下面是别人解决的Delphi代码
===================华丽分割线=========================
procedure TForm1.Button1Click(Sender: TObject);
var
Doc:IHTMLDocument2;
Submit:IHTMLElement;
TPL_UserName:IHTMLInputElement;
PasswordObj:IHTMLObjectElement;
V:OleVariant;
begin
WebBrowser1.Navigate('http://member1.taobao.com/member/login.jhtml');
while WebBrowser1.ReadyState<>4 do
Application.ProcessMessages;
//
Doc:=WebBrowser1.Document as IHTMLDocument2;
TPL_UserName:=Doc.all.item('TPL_username',varEmpty) as IHTMLInputElement;
TPL_UserName.value:='淘宝用户名';
//
PasswordObj:=Doc.all.item('Password_Edit',varEmpty) as IHTMLObjectElement;
V:=PasswordObj.object_;
V.TextData:='';//TPL_password,这里是加密后的密码,具体怎么加密,看网页中的ActiveX,如果您还不会,加分,我帮你搞定
Submit:=Doc.all.item('Submit',varEmpty) as IHTMLElement;
Submit.click;
end;


...全文
1082 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
silimme 2012-02-27
  • 打赏
  • 举报
回复
到底是什么方法作的?
qq286106571 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zenghd 的回复:]
webBrowser1.Document.GetElementById("TPL_username_1").InnerText = "username";
webBrowser1.Document.GetElementById("J_SafeLoginCheck").InvokeMember("click");
webBrowser1.Document.GetElementById("……
[/Quote]
也谢谢你=。= 这么热心。呵呵
qq286106571 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 luoning9527 的回复:]
你的webBrowser1.Document为空。要在一定时间之后才可以获取document。另外,使用sleep延迟一定的时间,通常来说不是一个明智的选择。
你应该添加DocumentCompleted实践,在这里面再进行你相应的操作,以下是我填写的帐号的代码。

补充,首先你要查看taobao页面的html代码,看看他的id或name到底是什么,以确定你获得的是你期望的控件。


……
[/Quote]
也谢谢这位兄弟。。提醒了我时间的问题。呵呵
qq286106571 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 colorall 的回复:]
C# code

private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("J_SafeLoginCheck").InvokeMember("click");
webBrowser1.Document.GetElementById("TPL……
[/Quote]
哈哈终于解决。谢谢 哥们。。。=。= 原来可以这样的。。自己饶进去。没想到
ZengHD 2010-11-27
  • 打赏
  • 举报
回复
webBrowser1.Document.GetElementById("TPL_username_1").InnerText = "username";
webBrowser1.Document.GetElementById("J_SafeLoginCheck").InvokeMember("click");
webBrowser1.Document.GetElementById("TPL_password").InnerText = "password";
colorall 2010-11-27
  • 打赏
  • 举报
回复


private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("J_SafeLoginCheck").InvokeMember("click");
webBrowser1.Document.GetElementById("TPL_username_1").InnerText = "YourAcount";
webBrowser1.Document.All.GetElementsByName("TPL_password")[0].InnerText = "YourPassword";
HtmlElement formLogin = webBrowser1.Document.Forms["J_StaticForm"];
formLogin.InvokeMember("submit");
}
Luoning9527 2010-11-27
  • 打赏
  • 举报
回复
你的webBrowser1.Document为空。要在一定时间之后才可以获取document。另外,使用sleep延迟一定的时间,通常来说不是一个明智的选择。
你应该添加DocumentCompleted实践,在这里面再进行你相应的操作,以下是我填写的帐号的代码。

补充,首先你要查看taobao页面的html代码,看看他的id或name到底是什么,以确定你获得的是你期望的控件。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
string url = "https://login.taobao.com/member/login.jhtml";
webBrowser1.Navigate(url);
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.GetElementById("TPL_username_1").SetAttribute("value", "lucasluo");
}
}
}

qq286106571 2010-11-27
  • 打赏
  • 举报
回复
就是让密码框得到光标 可是怎么让 VS自动输入键盘 我要的值 知道的话能告诉我下哪个方向吗。。谢谢了
qq286106571 2010-11-27
  • 打赏
  • 举报
回复
额。。=。= 虽然没解决。但是还是谢谢你 ZengHD 呵呵。。那我有另中解决方法。。就是获取坐标
然后自动输入值 = =可是我技术烂就只有思路 怎么才能用VS 自动输入值 该用到哪个类 哪个命令空间?
哥们你知道吗
ZengHD 2010-11-27
  • 打赏
  • 举报
回复
使用了ACTIVEX控件,没什么好方法了,手工输入吧
qq286106571 2010-11-27
  • 打赏
  • 举报
回复
DELPHI 但我知道那思路。。到时先在密码框输入正确密码,看看你密码的TextData 就可以登陆
= =问题。我想用C#来弄。但没方向。。。
ZengHD 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 qq286106571 的回复:]
V.TextData:='';//TPL_password,这里是加密后的密码,具体怎么加密,看网页中的ActiveX,如果您还不会,加分,我帮你搞定
[/Quote]

看了你DELPHI的代码,一样没有解决啊,TextData也没有赋值
wuyq11 2010-11-27
  • 打赏
  • 举报
回复
c++之类写的ACTIVEX控件,
没法像HTML表单那样取得它的值
qq286106571 2010-11-27
  • 打赏
  • 举报
回复
- - 恩就是不会。 所以才请教高手。。。我想实现自动登陆淘宝的软件
ZengHD 2010-11-27
  • 打赏
  • 举报
回复
taobao的密码框是一个ActiveX控件啊,不能用InnerHtml赋值吧
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
内容概要:本文围绕基于改进A*算法的栅格全域覆盖路径规划展开研究,重点实现了螺旋四边收缩遍历、往复行式遍历等多种路径遍历策略,并在Matlab平台上对算法进行了建模与仿真。通过对传统A*算法的优化,提升了路径规划的覆盖率与执行效率,有效解决了全域覆盖过程中存在的路径冗余、搜索效率低等问题,尤其适用于复杂障碍物分布环境下的全局路径规划任务。文中系统阐述了算法的设计原理、关键改进点、实现流程及仿真实验结果,验证了改进算法在实际应用场景中的优越性能。; 适合人群:具备一定Matlab编程能力及路径规划基础知识的科研人员、高校研究生、自动化与机器人相关领域的工程技术人员。; 使用场景及目标:①应用于智能机器人、无人机等自主移动设备在未知或部分已知环境中的全域覆盖任务;②为解决传统A*算法在全覆盖路径规划中存在的效率瓶颈提供可行的技术改进方案;③通过Matlab仿真平台验证算法有效性,辅助科研人员完成算法原型开发与性能评估,推动智能系统路径规划模块的实际落地应用; 阅读建议:建议读者结合文中的Matlab代码进行动手实践,深入理解算法细节,尝试在不同规模与复杂度的栅格地图中测试算法表现,进一步掌握路径规划的核心思想与优化技巧。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 MAC(媒体访问控制器)与PHY(物理接口收发器)是构成以太网基础架构的两个核心组成部分,它们在数据链路层和物理层中承担着重要功能。以太网技术是计算机网络领域中应用最为广泛的局域网技术之一,其相关标准主要由IEEE通过IEEE 802.3标准来制定,该标准详细规定了从物理层到介质访问控制层的通信协议和规范。MAC主要负责数据链路层的下半部分功能,其核心职责包括对网络中的数据传输进行管理,确保数据能够准确无误地在网络中传输。MAC通过评估网络状态来决定是否可以发送数据,并在发送前为数据附加必要的控制信息,最终将数据和控制信息按照标准格式传输至物理层。在接收数据时,MAC协议负责判断数据传输是否出现错误,若无错误则将数据的控制信息剥离后传递给逻辑链路控制(LLC)层。 PHY则负责物理层的具体实现,涵盖了电信号的传输与接收,以及将数据转换为物理信号发送至网络,或将物理信号转换回数据供MAC处理。IEEE 802.3标准对PHY的规范进行了规定,不同速度的PHY,例如10BaseT和100BaseTX,虽然在物理层上具有相同的分组描述,但所采用的信令机制存在差异,10BaseT使用曼彻斯特编码,而100BaseTX采用4B/5B编码,这种设计防止了硬件在不同速度下能够轻易兼容。 媒体独立接口(MII)是用于连接MAC和PHY的标准接口,作为IEEE 802.3定义的一个以太网行业标准,它包含了数据接口和管理接口。数据接口运用了两条独立的信道,其中一条用于发送器,另一条用于接收器,每条信道都包含数据、时钟和控制信号。总共需要16个信号来实现MII接口,以支持MAC和PHY之间的数据交...

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧