Foxtable(狐表)用户栏目专家坐堂 → [求助]在webbrowser里登录失败后的提示框如何关闭(已解决)


  共有4028人关注过本帖树形打印复制链接

主题:[求助]在webbrowser里登录失败后的提示框如何关闭(已解决)

帅哥哟,离线,有人找我吗?
bohe
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
[求助]在webbrowser里登录失败后的提示框如何关闭(已解决)  发帖心情 Post By:2023/7/1 10:50:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20210717083920.png
图片点击可在新窗口打开查看

上面的图是验证码出错出现的提示,这个提示单独写代码可以获取并关闭,但放在登录操作代码后面就无效了


解决方案:通过定时器来解决分时运行问题

[此贴子已经被作者于2023/7/5 9:25:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/1 11:06:00 [显示全部帖子]

不是抓取数据,是webbroswer里登录失败的提示如何关闭的问题

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/1 11:08:00 [显示全部帖子]

登录也是代码控制,当验证码不对就有提示,这个提示如何用代码关闭

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/1 16:10:00 [显示全部帖子]

蓝版,发现情况是这样的,点登录之前网页代码是这样的
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

点登录之后网页代码是这样的
图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
下面的代码是判断是否成功登录,没有的话消除提示框
 web.Document.GetElementById("btncx").InvokeMember("click")  '这是点登录
Dim divhtml As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("div") '获得当前页面的div标签HTML元素集合
For i As Integer = 0 To divhtml.Count - 1 '循环所有div标签
    If divhtml(i).OuterHtml.Contains("myTabContent") Then 'myTabContent是成功登录后数据表的id
        Exit For
    End If
    If divhtml(i).OuterHtml.Contains("知道了") Then '判断该input标签是否包含这个字符串(如果包含说明该div标签是在弹窗里)
        Dim tchtml As System.Windows.Forms.HtmlElementCollection = divhtml(i).GetElementsByTagName("div") '在弹窗里获得下面的div标签HTML元素数组
        tchtml(1).InvokeMember("click") '点击该标签,从而消除提示框
        Exit For
    End If
Next

可发现上面的代码还是提取之前的div代码,应该是先提取了再执行了点击,请问这种情况怎么解决?
[此贴子已经被作者于2023/7/1 16:12:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/1 16:14:00 [显示全部帖子]

弹窗出现后,把与登录相关代码注释掉,运行上面的代码有效,能消除提示框

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/1 16:17:00 [显示全部帖子]

还有我把上面的代码放到函数里异步执行也不行,同步没问题

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/1 18:19:00 [显示全部帖子]

蓝版,有什么方法解决消除提示框吗?
[此贴子已经被作者于2023/7/1 18:20:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/1 18:23:00 [显示全部帖子]

这个提示框是js来生成的,狐表能不能找到这个?

 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/2 9:35:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:33.png
图片点击可在新窗口打开查看




 回到顶部
帅哥哟,离线,有人找我吗?
bohe
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1077 积分:9929 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2023/7/2 9:42:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:44.png
图片点击可在新窗口打开查看


蓝版,这种情况如何解决?

以下是部分代码

    web.Document.GetElementById("btncx").InvokeMember("click") ’点击查询按钮


’以下是获取提示框
Dim divhtml As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("div") '获得当前页面的div标签HTML元素集合
For i As Integer = 0 To divhtml.Count - 1 '循环所有div标签
    If divhtml(i).OuterHtml.Contains("myTabContent") Then 'myTabContent是成功登录后数据表的id
        Exit For
    End If
    If divhtml(i).OuterHtml.Contains("wintips") and divhtml(i).OuterHtml.Contains("display: block;") Then '判断该div标签是否包含提示框内相应字符串(如果包含说明该div标签是在弹窗里)
        MessageBox.Show(divhtml(i).OuterHtml)
        messagebox.Show(divhtml(i).Children(1).OuterHtml)
        divhtml(i).Children(1).InvokeMember("click")
        Exit For
    End If
Next

 回到顶部
总数 13 1 2 下一页