如何通过winform程序操作网页上的某个链接或是按钮

yeah86 2009-05-09 10:37:48
我需要通过Winform程序,自动的点击网页上的某个链接或是按钮。
这个要怎样实现啊,没有做过这方面的东西。希望有人指点一下,呵呵
...全文
464 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
cocoa1199 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 lisp_stu 的回复:]
如何向文本域写入值啦<textarea id="recontent" name="recontent" cols="80" rows="10">fsdfsfsdfsdfsdf</textarea>
[/Quote]

HtmlElementCollection elemlist = webBrowser1.Document.GetElementsByTagName("textarea");
foreach (HtmlElement elem in elemlist)
{
if (elem.GetAttribute("name").ToString() == "recontent")
{
elem.SetAttribute("innerText", "abc");
}
}
lisp_stu 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jimgreat 的回复:]
修改一个

上面的
HtmlElementCollection elemlist = webBrowser2.Document.GetElementsByTagName("INPUT");
应该是
HtmlElementCollection elemlist = webBrowser1.Document.GetElementsByTagName("INPUT");

如果是
H……
[/Quote]


如何向文本域写入值啦<textarea id="recontent" name="recontent" cols="80" rows="10">fsdfsfsdfsdfsdf</textarea>
jimgreat 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 yeah86 的回复:]
引用 14 楼 jimgreat 的回复:
是抛异常说webView2 是 null不?

从头下断点看一下 webView2的初始化 有没有问题


好像要那个页面完全加载完了才能执行,在加载过程中执行就会报错
[/Quote]

这是必须的
wenjie0728 2009-05-11
  • 打赏
  • 举报
回复
帮顶
jimgreat 2009-05-11
  • 打赏
  • 举报
回复
是抛异常说webView2 是 null不?

从头下断点看一下 webView2的初始化 有没有问题
yeah86 2009-05-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jimgreat 的回复:]
是抛异常说webView2 是 null不?

从头下断点看一下 webView2的初始化 有没有问题
[/Quote]

好像要那个页面完全加载完了才能执行,在加载过程中执行就会报错
yeah86 2009-05-09
  • 打赏
  • 举报
回复
谢谢了,知道了,呵呵
yeah86 2009-05-09
  • 打赏
  • 举报
回复
但如果我点击了以后,想把这个网页加载到另一个webBrowser里面呢?
这个又该怎样设置 ?
jimgreat 2009-05-09
  • 打赏
  • 举报
回复
应该你click的链接的target属性是_blank
<a href=".." target="_blank"></a>
这样 的链接就会在新的窗口中打开

把target属性设成空的就可以了
yeah86 2009-05-09
  • 打赏
  • 举报
回复
但为什么在点击后会在IE浏览器里打开,而且有很多,造成死机
怎样让它在webBrowser里打开呢?
baiyunyinv 2009-05-09
  • 打赏
  • 举报
回复
up
qgylovelj 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jimgreat 的回复:]
用WebBrowser
先加载网页

C# code
webBrowser1.Navigate("网页地址");




在DocumentCompleted事件中
可能获取表单元素 例如"INPUT"
并设置它们的值

C# code
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{

HtmlElementCollection elemlist = webBrowser2.Document.GetElementsByTagName("INPUT");
foreach (HtmlEl…
[/Quote]
UP
framw2010 2009-05-09
  • 打赏
  • 举报
回复
UP
kingstou 2009-05-09
  • 打赏
  • 举报
回复
楼上已经答完了。
yeah86 2009-05-09
  • 打赏
  • 举报
回复
哦,看到了,呵呵,抱歉!!
yeah86 2009-05-09
  • 打赏
  • 举报
回复
那请问为某一输入框赋值呢?
jimgreat 2009-05-09
  • 打赏
  • 举报
回复
修改一个

上面的
HtmlElementCollection elemlist = webBrowser2.Document.GetElementsByTagName("INPUT");
应该是
HtmlElementCollection elemlist = webBrowser1.Document.GetElementsByTagName("INPUT");

如果是
HtmlElementCollection elemlist = webBrowser2.Document.GetElementsByTagName("a");
就可能获取所有链接元素了

jimgreat 2009-05-09
  • 打赏
  • 举报
回复
用WebBrowser
先加载网页

webBrowser1.Navigate("网页地址");


在DocumentCompleted事件中
可能获取表单元素 例如"INPUT"
并设置它们的值

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{

HtmlElementCollection elemlist = webBrowser2.Document.GetElementsByTagName("INPUT");
foreach (HtmlElement elem in elemlist)
{
if (elem.GetAttribute("NAME").ToString() == "loginname")
elem.SetAttribute("value", "123");
if (elem.GetAttribute("NAME").ToString() == "passwd")
elem.SetAttribute("value", "123");
}
}


在元素中找到submit
调用click 就是点击按钮了

注意是TYPE
if (elem.GetAttribute("TYPE").ToString() == "submit")
{
elem.InvokeMember("click");
}
yeah86 2009-05-09
  • 打赏
  • 举报
回复
为什么webBrowser赋了值,它还是报错,说未将对象引用到实例


HtmlElementCollection elemlist = webView.Document.GetElementsByTagName("a");

foreach (HtmlElement elem in elemlist)
{

if (elem.GetAttribute("href").ToString().StartsWith("http://collect.myspace.cn/index.cfm?fuseaction=invite.addfriend_verify&friendID"))
{
this.webView2.Navigate(elem.GetAttribute("href").ToString());
HtmlElementCollection elemlist2 = webView2.Document.GetElementsByTagName("a");

foreach (HtmlElement e2 in elemlist2)
{

if (e2.GetAttribute("ID").ToString() == "SendRequestButton")
{
e2.InvokeMember("click");
}
}
}

//if (elem.GetAttribute("ID").ToString() == "SendRequestButton")
//{
// elem.InvokeMember("click");
//}



}


webView2明明赋了值,为什么老是说为空!!

111,098

社区成员

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

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

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