http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

楼主: flychen

[其他] webBrowser 取网页上值模拟登陆,取值出现拒绝访问。 (异常来自 HRESULT:0x8007000...

[复制链接]
发表于 2013-8-11 11:16:16 | 显示全部楼层
先登录再访问这个页面,对就是直接访问


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-8-11 12:13:33 | 显示全部楼层
站长苏飞 发表于 2013-8-11 11:16
先登录再访问这个页面,对就是直接访问

不太明白你的意思?能具体点吗。
发表于 2013-8-11 12:26:08 | 显示全部楼层
你先用webbors登录然后直接定位到框架页,就这样
 楼主| 发表于 2013-8-11 14:30:42 | 显示全部楼层
站长苏飞 发表于 2013-8-11 12:26
你先用webbors登录然后直接定位到框架页,就这样

还是报那个错。不知道什么原因,登陆成功后的页面都显示完了我才去操作。。谢谢站主的解答,我摸索下。在没进入成功页面时,我给页面框架里面的input 赋值,然后实现自动登陆都没出错,就是成功后的页面,Frames明明两个值,但是只能访问Frames[1],访问Frames[0]就出错。
发表于 2013-8-11 14:40:03 | 显示全部楼层
你现在不要用你的方法了,你听我的没错,直接访问框架页,你的路不同非要走,坑定不行,按我的方法试试,先登录然后直接访问框架页在进行操作
 楼主| 发表于 2013-8-11 14:42:41 | 显示全部楼层
站长苏飞 发表于 2013-8-11 14:40
你现在不要用你的方法了,你听我的没错,直接访问框架页,你的路不同非要走,坑定不行,按我的方法试试,先 ...

HtmlDocument log_auto = webBrowser1.Document.Window.Frames["topFrame"].Document;
                        HtmlElement log_btn = null;
                        foreach (HtmlElement em in log_auto.All) //轮循
                        {
                            string str = em.Name;
                            string id = em.Id;
                            if ((str == "loginName") || (str == "loginPwd") || (str == "Submit") || (str == "ValidateCode")) //减少处理
                            {
                                switch (str)
                                {
                                    case "loginName": em.SetAttribute("value", PublicSource.UserName);
                                        break; //赋用户名
                                    case "loginPwd": em.SetAttribute("value", PublicSource.Pwd);
                                        break; //赋密码
                                    case "Submit": log_btn = em;
                                        break; //获取submit按钮
                                    case "ValidateCode": em.SetAttribute("value", Code);
                                        break;
                                    default:
                                        break;
                                }
                            }
                        }
                        log_btn.InvokeMember("click"); //触发submit事件

这是登陆的源码,你说的后面如何操作,我听得不是很懂。如何直接访问框架页?用什么方法?
发表于 2013-8-11 17:37:52 | 显示全部楼层
登录成功之后执行这个webBrowser1.Navigate(框架页的网址);这样就是直接访问框架页了
 楼主| 发表于 2013-8-11 17:45:08 | 显示全部楼层
站长苏飞 发表于 2013-8-11 17:37
登录成功之后执行这个webBrowser1.Navigate(框架页的网址);这样就是直接访问框架页了

这个我试过了不得行,用  webBrowser1.Navigate("http://hh1.hfs-0010.25u.com:5703/user").这样的话就刷新了页面,一刷新页面,又回到了登陆界面而不是点击确定进入操作主界面了
发表于 2013-8-11 17:47:54 | 显示全部楼层
你看看框架页是怎么访问不退出的,你模拟一下就是了,
 楼主| 发表于 2013-8-11 17:49:28 | 显示全部楼层
站长苏飞 发表于 2013-8-11 17:47
你看看框架页是怎么访问不退出的,你模拟一下就是了,

嗯,我试下,谢谢站长细心解答哈!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-23 00:53

© 2014-2021

快速回复 返回顶部 返回列表