【问题标题】:Select <TR> under HTML by VBA通过 VBA 在 HTML 下选择 <TR>
【发布时间】:2019-05-18 05:46:29
【问题描述】:

你好,上面的代码适用于星期选择,但不适用于选择时间

<td style="white-space:nowrap;">Master Timings</td>
<td>
    <select name="ddlSTSun" id="ddlSTSun" onChange="return ChangeAllSTET(frmRosterInfoTLEmp,&#39;ddlSTSun&#39;,&#39;ddlST1Sun02&#39;);" style="font-family:Arial;font-size:9pt;">
        <option value="01:00">01:00</option>
        <option value="02:00">02:00</option>
        <option value="03:00">03:00</option>
        <option value="04:00">04:00</option>
        <option value="05:00">05:00</option>
        <option value="06:00">06:00</option>
        <option value="07:00">07:00</option>

我的 VBA 代码是

ie.Document.getElementsByTagName("iframe")(0).contentDocument.querySelector("[name=cmbWeeks]").selectedIndex = "Week:-2 19-May-2019"
ie.Document.getElementsByTagName("iframe")(0).contentDocument.querySelector("[name=cmbWeeks]").FireEvent ("onchange")
Sleep 5000
ie.Document.getElementsByTagName("iframe")(0).contentDocument.querySelector("[name=ddlSTSun]").selectedIndex = "12:00"
ie.Document.getElementsByTagName("iframe")(0).contentDocument.querySelector("[name=ddlSTSun]").FireEvent ("onchange")

【问题讨论】:

    标签: html vba web-scraping screen-scraping


    【解决方案1】:

    有一个 id 所以首先使用它。然后selectedIndex 占据索引位置,例如1,2 等不是时间值。

    ie.Document.getElementsByTagName("iframe")(0).contentDocument.querySelector("#ddlSTSun").selectedIndex = 1 
    

    您可以使用属性=值选择器来指定时间:

    ie.Document.getElementsByTagName("iframe")(0).contentDocument.querySelector("#ddlSTSun [value='12:00']").selected = True
    

    事件(如果需要):

    ie.Document.getElementsByTagName("iframe")(0).contentDocument.querySelector("#ddlSTSun").FireEvent "onchange"
    

    【讨论】:

      猜你喜欢
      • 2020-04-06
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 2020-05-05
      • 2015-09-12
      • 2023-04-03
      相关资源
      最近更新 更多