当使用vba代码在页面上单击按钮时,html表被加载到同一页面中,但是无法使用vba代码检索表信息。当我通过在键盘上手动按“ Enter Key”刷新页面时,可以使用vba代码获取表信息。请协助我如何使用vba代码自动从页面获取嵌套表信息。请让我知道是否需要其他信息。
VBA立即窗口
<tr>
<td width="49%">
</td>
</tr>
</tbody></table>
</td>
</tr> </tbody></table>
</td></tr></tbody></table>
VBA代码
Set btn = htmldoc.getElementById("ctl00_ContentPlaceHolder1_btnList")
btn.Click
Sleep (3000)
'waitForLoad ie
Set mybrowser = Nothing
Set mybrowser = FindWindow("rasp/CaseDetails.aspx")
Set htmldoc = mybrowser.Document
Debug.Print (htmldoc.body.innerHTML)
HTML代码
<tr>
<td width="49%">
<table cellspacing="0" cellpadding="4" align="Right" rules="cols" border="1" id="ctl00_ContentPlaceHolder1_grdData" style="width:100%;text-decoration:none;height:11px;font-weight:normal;font-style:normal;font-size:10px;font-family:Verdana;color:Black;border-width:1px;border-style:None;border-color:#DEDFDE;background-color:White;border-collapse:collapse;">
<tr style="color:White;background-color:#6B696B;font-family:Verdana;font-size:10px;font-weight:bold;height:11px;width:30px;">
<td>Caseno</td><td>CaseDate</td><td>Status</td><td>Referenceno</td><td>Custname</td><td>MobileNo</td><td>Serialno</td><td>Brand</td><td>Model</td><td>ModelDesc</td><td>Popdate</td><td>SympCode1</td><td>SympCode2</td><td>SympCode3</td>
</tr><tr valign="top" style="background-color:#F7F7DE;font-family:Verdana;font-size:10px;height:16px;width:30px;">
<td><a href = frmView.aspx?jokey=3146288 target = _blank>0003146288</a></td><td>02/27/2019</td><td>Closed</td><td> </td><td>MUHAMMAD AHAMED</td><td>0096599720991</td><td>VNF3D18318</td><td>HPIPGCONS</td><td>G3Q35A</td><td>HP LaserJet Pro M102w Prntr</td><td>06/09/2018</td><td> </td><td> </td><td> </td>
</tr><tr valign="top" style="background-color:White;font-family:Verdana;font-size:10px;height:16px;width:30px;">
<td><a href = frmView.aspx?jokey=3146300 target = _blank>0003146300</a></td><td>02/27/2019</td><td>Closed</td><td> </td><td>BURHAN TECHNOLOGY COMPUTER CO</td><td>0096598545714</td><td>CN88Q4R0C0</td><td>HPIPGCONS</td><td>G1X85A</td><td>HP Officejet 7612 WF e-All-in-</td><td>09/27/2018</td><td> </td><td> </td><td> </td>
</tr><tr valign="top" style="background-color:#F7F7DE;font-family:Verdana;font-size:10px;height:16px;width:30px;">
<td><a href = frmView.aspx?jokey=3146378 target = _blank>0003146378</a></td><td>02/27/2019</td><td>Waiting for stock</td><td> </td><td>LEAFIN INTERNATIONAL</td><td>0096550987136</td><td>U310C5BZ</td><td>Lenovo</td><td>65BA</td><td>LENOVO LI2054A Wide LCD Mon</td><td>01/09/2019</td><td> </td><td> </td><td> </td>
</tr><tr valign="top" style="background-color:White;font-family:Verdana;font-size:10px;height:16px;width:30px;">
<td><a href = frmView.aspx?jokey=3146446 target = _blank>0003146446</a></td><td>02/27/2019</td><td>Closed</td><td> </td><td>MOHAMMED IQBAL</td><td>0096597217552</td><td>VNBNKDJFF5</td><td>HPIPGCONS</td><td>T6B82A</td><td>HP Color LaserJet Pro MFP M281</td><td>12/18/2017</td><td> </td><td> </td><td> </td>
</tr><tr valign="top" style="background-color:#F7F7DE;font-family:Verdana;font-size:10px;height:16px;width:30px;">
<td><a href = frmView.aspx?jokey=3146572 target = _blank>0003146572</a></td><td>02/28/2019</td><td>Waiting for stock</td><td> </td><td>CORE COME INTERNATIONAL</td><td>0096599143374</td><td>MP1EDCW0</td><td>Lenovo</td><td>IDEAPAD V330-14IKB</td><td>LENOVO V330-14IKB</td><td>10/17/2018</td><td> </td><td> </td><td> </td>
</tr><tr valign="top" style="background-color:White;font-family:Verdana;font-size:10px;height:16px;width:30px;">
<td><a href = frmView.aspx?jokey=3146651 target = _blank>0003146651</a></td><td>02/28/2019</td><td>Closed</td><td>DOA</td><td>EUREKA HAWALLY</td><td>0096566212648</td><td>MP1D8K4Y</td><td>Lenovo</td><td>IDEAPAD 520-14IKB</td><td>LENOVO YOGA 520-14IKB</td><td>02/27/2019</td><td> </td><td> </td><td> </td>
</tr><tr valign="top" style="background-color:#F7F7DE;font-family:Verdana;font-size:10px;height:16px;width:30px;">
<td><a href = frmView.aspx?jokey=3146901 target = _blank>0003146901</a></td><td>02/28/2019</td><td>Closed</td><td> </td><td>SAKR ATTAI ZEDAIN</td><td>0096569335053</td><td>CN84H2G0Q2</td><td>HPIPGCONS</td><td>Z4B53A</td><td>HP Ink Tank WL 415 AiO Printer</td><td>08/19/2018</td><td> </td><td> </td><td> </td>
</tr><tr valign="top" style="background-color:White;font-family:Verdana;font-size:10px;height:16px;width:30px;">
答案 0 :(得分:0)
如果您可以发布URL,将会有所帮助。
您发布的html代码是从哪里复制的?
请记住,当您在页面上right-click
和View Page Source Code
时,所得到的结果可能与Inspect Element
所得到的结果不同。
我只能假设,在您的情况下,您的代码将返回在进行任何DOM操作之前传递到浏览器的HTML文件。
换句话说,在此脚本生效之前,用脚本填充您感兴趣的表的内容,然后您的代码下载HTML。
相当于View Page Source Code
。那可以解释为什么您得到的表为空。
无论如何,您应该学习如何处理HTTP请求,而不是使用IE来获取所需的数据。有关如何执行此操作的文章很多,这将使您的生活更加轻松。
我的建议是,当您按下该按钮时,请转到该网站,打开浏览器的Web开发人员工具并检查网络流量(如果使用的是Firefox,则检查网络流量(ctrl+Shift+E
)。
查找哪个请求的响应包含您感兴趣的数据并从那里开始工作。
答案 1 :(得分:0)
我的问题已解决。我把我的代码等待,直到文档完全加载。文件完全加载后,我可以访问表。感谢您的帮助。