ExcelHome技术论坛

 找回密码
 免费注册
QQ登录 只需一步,快速开始
   
高效办公必会的Office99uu优优 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! 国内首部Excel函数公式学习大典 职场充电黑科技, Office微99uu优优 免费下载Excel行业应用视频
300集Office 2010微99uu优优 Tableau-数据可视化工具 突破Excel限制,用活字格提高效率 12门Excel免费公开课任你学
你的Excel 201099uu优优学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
楼主: liucqa
打印 上一主题 下一主题

WebBrowser控件登录12306订票小助手--抓验证码图片、API关闭弹窗,更新0.53版

  [复制链接]
TA的精华主题TA的得分主题
41
发表于 2012-1-17 01:15 | 只看该作者
本帖已被收录到知识树中,索引项:网页交互
本帖最后由 xmyjk 于 2012-1-17 01:16 编辑

短消息什么都收到,忙,抽空看了下,登陆大概如下,因为系统1点-6点不可以登陆,凭印象做了下,明天再试看看

  • Dim FLAG As Boolean
  • Private Sub CommandButton1_Click()
  •     Dim t As Single
  •     With WebBrowser1
  •         .Silent = True
  •         .Navigate "https://dynamic.12306.cn/otsweb/main.jsp"
  •         Do Until .ReadyState = READYSTATE_COMPLETE
  •             DoEvents
  •         Loop
  •         t = Timer
  •         On Error Resume Next
  •         Do Until InStr(.Document.frames(0).Document.BODY.INNERTEXT, "忘记用户名/密码?") > 0 Or Timer > t + 8
  •             DoEvents
  •         Loop
  •         On Error GoTo 0
  •         If Timer < t + 8 Then
  •             MsgBox "网页加载完毕!"
  •             FLAG = True
  •         Else
  •             MsgBox "登陆超时!"
  •             FLAG = False
  •         End If
  •     End With
  • End Sub

  • Private Sub LoginCbn_Click()
  •     If FLAG = True Then
  •         With WebBrowser1.Document.frames(0).Document
  •             .all("loginUser.user_name").Value = userTbx.Value
  •             .all("user.password").Value = PsdTbx.Value
  •             .all("randCode").Value = RndcodeTbx.Value
  •             .all("subLink").Click
  •         End With
  •     End If
  • End Sub
  • 复制代码



    12306登录演示.rar 15.42 KB, 下载次数: 84
    TA的精华主题TA的得分主题
    42
     楼主| 发表于 2012-1-17 01:30 | 只看该作者 |楼主
    本帖最后由 liucqa 于 2012-1-17 01:58 编辑
    xmyjk 发表于 2012-1-17 01:15
    短消息什么都收到,忙,抽空看了下,登陆大概如下,因为系统1点-6点不可以登陆,凭印象做了下,明天再试看看 ...

    我就没在WebBrowser1里面找到frames(0),用F8看Document里面的Frames是空的,不知道为啥,要不就不用post了

    我不懂网页,但看源码估计loginforn表单是用js搞出来的

    <script src="/otsweb/js/login.js?version=2.1" type="text/javascript"></script>
    <div class="conWrap">
        <!--header -->

        <!--header end-->
        <!--con -->
        <div class="enter_w">
            <div class="enter_top">
                <div class="enter_left">
                    <div class="enter_from">
                        <ul>
                            <li class="enter_logo"><img
                                src="/otsweb/images/enter_font1.jpg" /></li>
                            <form name="loginForm" id="loginForm" method="post" action="/otsweb/loginAction.do?method=login">

    等网站人少的时候,我试试你的代码

    点评

    右键看到的源代码是初始的,并非JS脚本再次调整后的,用FIREFOX+FIREBUG吧,可以看到最终的网页文本。  发表于 2012-1-17 09:15
    TA的精华主题TA的得分主题
    43
     楼主| 发表于 2012-1-17 08:53 | 只看该作者 |楼主
    本帖最后由 liucqa 于 2012-1-17 13:37 编辑
    xmyjk 发表于 2012-1-17 01:15
    短消息什么都收到,忙,抽空看了下,登陆大概如下,因为系统1点-6点不可以登陆,凭印象做了下,明天再试看看 ...

    测试了,你的代码可以登录。非常感谢

    那么只剩最后一个问题了,为什么通过WB登录进12306,点击查询,始终说服务器忙,查询失败呢?其实服务器压根就没有进行查询,这个会与什么有关呢?(无论是程序Post还是submit,还是干脆人工输入点击登录,到查询都一样查询失败)


    不是网站问题,我用ie从没这个现象

    点评

    我还是登录不上去,继续去忙了,查询失败会不会是网站自身的问题呢?  发表于 2012-1-17 10:50
    现在买票的人太多了,我连登录都登录不上去。  发表于 2012-1-17 09:14
    TA的精华主题TA的得分主题
    44
     楼主| 发表于 2012-1-17 10:18 | 只看该作者 |楼主
    TA的精华主题TA的得分主题
    45
     楼主| 发表于 2012-1-17 15:56 | 只看该作者 |楼主
    本帖最后由 liucqa 于 2012-1-17 15:57 编辑

    为什么js脚本错误不能屏蔽呢?

    点评

    我这里正常呀,我能登录进去了,你是要查询哪个?  发表于 2012-1-17 17:31
    TA的精华主题TA的得分主题
    46
     楼主| 发表于 2012-1-17 18:55 | 只看该作者 |楼主
    本帖最后由 liucqa 于 2012-1-17 20:48 编辑

    随便找个始发和终到站,点查询,会提示服务器忙,查询加载失败。有时候,会提示js脚本错误,然后就一直显示正在查询,请稍候。

    加入计时器关闭IE提示窗口,但无法关闭JS脚本错误,有什么办法不让WB报告JS脚本错误呢?(别的错误不能屏蔽)

    附件在48楼


    TA的精华主题TA的得分主题
    47
     楼主| 发表于 2012-1-17 19:12 | 只看该作者 |楼主
    本帖最后由 liucqa 于 2012-1-17 20:27 编辑

    怎样屏蔽js脚本错误?
    TA的精华主题TA的得分主题
    48
     楼主| 发表于 2012-1-17 20:44 | 只看该作者 |楼主
    本帖最后由 liucqa 于 2012-1-18 01:08 编辑

    12306 submit演示-计时器API版.rar (75.32 KB, 下载次数: 41)

    如何屏蔽js脚本错误呢?

    进入登录页面之后,如果已经登录,点击退出,会报js脚本错误。
    进入订票页面,点击车票预订,也会报js脚本错误。

    pDisp.Document.parentWindow.execScript "window.open = null;", "javaScript"  这句放到WebBrowser1_NavigateComplete2事件里面似乎没啥用


    说一下,偶尔点击登录按钮,没看到计时器的提示信息(左上角的Timer计数),好像计时器没启动。其实计时器还是启动了,不过迅速又push了,估计原因可能和submit之后,WB返回结束状态过快有关。遇到这种情况,再点一次登录按钮即可。

    点评

    呃,你的附件,我运行得很正常,运行了好几次,没有你说的报脚本错误的类似状况也。。。  发表于 2012-1-17 22:11

    评分

    参与人数 1鲜花 +5 收起 理由
    xmyjk + 5 值得肯定
    查看全部评分
    TA的精华主题TA的得分主题
    49
     楼主| 发表于 2012-1-17 22:24 | 只看该作者 |楼主
    本帖最后由 liucqa 于 2012-1-17 22:25 编辑

    我的机器是ie9 ,和这个有关吗?  可以肯定的说在点击登录之前,网页状态是已经登录了,这个时候如果点退出,一定要报js错误的

    点评

    可能吧,没有用过IE9,等等,我录个动画给你,如果已经是登录状况了,我点退出,也是没有JS错误的。。。我IE8  发表于 2012-1-17 22:32
    TA的精华主题TA的得分主题
    50
    发表于 2012-1-17 22:35 | 只看该作者
    本帖最后由 xmyjk 于 2012-1-17 23:00 编辑
    liucqa 发表于 2012-1-17 22:24
    我的机器是ie9 ,和这个有关吗?  可以肯定的说在点击登录之前,网页状态是已经登录了,这个时候如果点退出 ...

    如图,完全正常,你试看看其他机器会不会。

    隐私问题,图片删了。

    您需要登录后才可以回帖 登录 | 免费注册
    本版积分规则
    关闭

    最新热点上一条 /1 下一条

    关注官方微信,每天坐享新鲜教程
    手机版|关于我们|联系我们|ExcelHome    GMT+8, 2018-1-20 12:42 , Processed in 0.076299 second(s), 15 queries , Gzip On, MemCache On.
    Powered by Discuz! X3.3 © 2001-2017 Wooffice Inc.
        沪公网安备 31011702000001号 沪ICP备11019229号 本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师
    快速回复 返回顶部 返回列表
    99uu优优