怎样用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;


...全文
986 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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赋值吧

111,094

社区成员

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

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

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