Foxtable(狐表)用户栏目专家坐堂 → [求助]网页元素怎么才能判断是否有这个元素呢?我老是出现错误


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

主题:[求助]网页元素怎么才能判断是否有这个元素呢?我老是出现错误

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
[求助]网页元素怎么才能判断是否有这个元素呢?我老是出现错误  发帖心情 Post By:2019/3/22 17:53:00 [只看该作者]

'''
'赋值单号
Dim dh As String=e.Form.Controls("TextBox1").value
If dh IsNot Nothing Then
'赋值浏览器
Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("WebBrowser1").Basecontrol
Do Until web.ReadyState = 4
    Application.DoEvents
Loop
web.Document.GetElementById("searchBillNo").SetAttribute("Value", dh)
'模拟点击查询
Dim Inputs2 As object = web.Document.GetElementsByTagName("input")
For Each Input2 As object In Inputs2
    If Input2.GetAttribute("value") = "查询"
        Input2.InvokeMember("click")
    End If
Next
'延迟一秒
Dim sdt As Date = Date.Now
While Date.Now < sdt.AddSeconds(1)
    Application.DoEvents
End While
'模拟点击查看完整信息
web.Document.GetElementById("operateLog").InvokeMember("click") 
'模拟点击面单发放
Dim inputs1 = web.Document.GetElementsByTagName("div")
For Each Input1 As object In Inputs1
    If Input1.GetAttribute("data-type") = "waybillGrant"
        Input1.InvokeMember("click")
    End If
Next
'延迟一秒    
    Dim sdt2 As Date = Date.Now
    While Date.Now < sdt2.AddSeconds(1)
        Application.DoEvents
    End While
'模拟点击订单信息
For Each Input2 As object In Inputs1
    If Input2.GetAttribute("data-type") = "orderInfo"
        Input2.InvokeMember("click")
    End If
Next
'延迟两秒
Dim sdt1 As Date = Date.Now
While Date.Now < sdt1.AddSeconds(2)
    Application.DoEvents
End While
'获取收件人信息
Dim elems As object = web.Document.GetElementsByTagName("table")
Dim trs0 = elems(0).GetElementsByTagName("tr")
Dim tr = trs0(1)
Dim tds1 = tr.GetElementsByTagName("td")
Dim sd As String=tds1(4).Innertext & tds1(5).Innertext '【因为没有此元素导致错误】
e.Form.Controls("TextBox2").Value=sd
'获取面单发放
Dim trs1 = elems(1).GetElementsByTagName("tr")
Dim tr1 = trs1(1)
Dim tds2 = tr1.GetElementsByTagName("td")
Dim md As String=tds2(7).Innertext  '【因为没有此元素导致错误】
e.Form.Controls("TextBox6").Value=md
End If
msgbox("请输入单号!")

想问问这两处怎么改才不会因为没有元素导致出错呢?

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


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

Dim tds1 = tr.GetElementsByTagName("td")
if tds1 isnot nothing andalso tds1.count > 5 then
……有
end if

 回到顶部