Foxtable(狐表)用户栏目专家坐堂 → [求助]【已解决】用Foxtable向网页写入数据


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

主题:[求助]【已解决】用Foxtable向网页写入数据

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/3 13:59:00 [只看该作者]

For i As Integer = 0 To 4这个循环去掉

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


加好友 发短信
等级:小狐 帖子:303 积分:2668 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2019/7/3 14:46:00 [只看该作者]

还是不能填入数据

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/3 15:02:00 [只看该作者]

先学会分析网页结构再说其它的,搞清楚哪个控件是什么id,做什么用的

Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("webbrowser1").basecontrol
Dim Inputs = web.Document.Window.Frames("frm1").Document.GetElementsByTagName("input")
For Each Input As object In Inputs
output.show("id=" & input.getAttribute("id"))
output.show("name=" &input.getAttribute("name"))
output.show("Parent=" &input.Parent.innerText)
output.show(“-----------”)
Next

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


加好友 发短信
等级:小狐 帖子:303 积分:2668 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2019/7/3 15:47:00 [只看该作者]

通过以上和以往的代码分析网页:
第一行
学号:位置:xsdm0  值:input.Parent.innerText
平时成绩:位置:cj0|0  值:value
期末考试:位置:cj0|1  值:value
是这个意思吗?

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/3 15:55:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:303 积分:2668 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2019/7/3 16:01:00 [只看该作者]

老大啊,完全看不懂,没有一点HTML基础

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/3 16:02:00 [只看该作者]

那就先学。网页分析要靠自己处理,我也没有时间去做这些分析。

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


加好友 发短信
等级:小狐 帖子:303 积分:2668 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2019/7/3 16:18:00 [只看该作者]

我这样试了一下:
Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("webbrowser1").basecontrol
Dim Inputs = web.Document.Window.Frames("frm1").Document.GetElementsByTagName("input")
For Each Input As object In Inputs
    If input.getAttribute("name") = "xsdm0" Then
        msgbox(input.Parent.innerText)
    End If
    If input.getAttribute("id") = "cj0|0" Then
        msgbox(input.getAttribute("value"))
    ElseIf input.getAttribute("id") = "cj0|1" Then
        msgbox(input.getAttribute("value"))
    End If
    'If Input.id = "cj1|0" Then
    'Input.SetAttribute("value", "10")
    'ElseIf input.id = "cj1|1"
    'Input.SetAttribute("value", "20")
    'End If
Next

都取到了第一行的值

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/3 16:49:00 [只看该作者]

这种分析方法不正确。根据html的层次,应该先获取行,就是tr标签,比如34楼中的<tr id='tr0',然后在获取里面的input标签内容

Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("webbrowser1").basecontrol
Dim trs = web.Document.Window.Frames("frm1").Document.GetElementsByTagName("tr")
For Each tr As object In trs
    Dim inputs = tr.GetElementsByTagName("input")
    For Each Input As object In Inputs
        If input.getAttribute("name") Like "xsdm*" Then
            msgbox(input.Parent.innerText)
        End If
        If input.getAttribute("id") Like "cj*" Then
            msgbox(input.getAttribute("value"))
        End If
    Next
Next

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


加好友 发短信
等级:小狐 帖子:303 积分:2668 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2019/7/3 18:06:00 [只看该作者]

楼上代码通过验证看懂了,现在的问题是input.Parent.innerText这个值,在下一个 if     end if语句里用不了
Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("webbrowser1").basecontrol
Dim trs = web.Document.Window.Frames("frm1").Document.GetElementsByTagName("tr")
For Each tr As object In trs
    Dim inputs = tr.GetElementsByTagName("input")
    For Each Input As object In Inputs
        If input.getAttribute("name") Like "xsdm*" Then
            msgbox("---------")
        End If
        If input.getAttribute("id") Like "cj*" Then
            msgbox(input.Parent.innerText)
            msgbox(input.getAttribute("value"))
        End If
    Next
Next
红色部分不能显示值


 回到顶部
总数 78 上一页 1 2 3 4 5 6 7 8 下一页