选择下拉菜单后如何启用禁用的元素?

时间:2019-05-07 10:01:37

标签: vba internet-explorer web-scraping automation

我正在尝试自动执行一些下载,但是遇到了一些问题,其中禁用的元素在此之前在元素中选择了一个值后无法启用。我正在选择日期范围,并且第一个下拉框设置为“任何”,这将禁用包含实际日期值的下一个下拉列表。一旦将“任何”更改为“之间”,在手动与页面交互时,这些下一个下拉列表将变为可用。但是,当通过代码执行操作时,即使我可以更改其中的值,这些框仍保持灰色状态(显然,提交表单时它们实际上并不适用)。

到目前为止,我已经尝试过几乎可以想到的与父表单元素的每一次交互都无济于事,例如在输入值之前使用.click,.submit,.focus和selectedIndex。我也尝试过与容器进行交互,但这根本没有做任何事情。我感觉点击会调用Javascript函数,但是a)我可能是错的,b)即使我是对的,我也不知道如何在我的代码中实现它,因为我是一个完全的初学者。编码。

Public ieApp As InternetExplorer
Public ieDoc As Object
Public ieTable As Object

Sub GetAppsData()
    Set ieApp = New InternetExplorer

    ieApp.Visible = True

    Set ieDoc = ieApp.Document

    With ieDoc.forms(0)
        Set DateSelect = ieDoc.getElementById("parent_ID")

        Set MinDay = ieDoc.getElementById("child_ID1")
        Set MinMonth = ieDoc.getElementById("child_ID2")
        Set MinYear = ieDoc.getElementById("child_ID3")

        Set MaxDay = ieDoc.getElementById("child_ID4")
        Set MaxMonth = ieDoc.getElementById("child_ID5")
        Set MaxYear = ieDoc.getElementById("child_ID6")

        Set form = ieDoc.getElementById("submit_button_ID")

        DateSelect.Value = "InRange"

        MinDay.Value = "1"
        MinMonth.Value = "7"
        MinYear.Value = "2017"

        MaxDay.Value = "30"
        MaxMonth.Value = "9"
        MaxYear.Value = "2017"

        form.Click
    End With
End Sub

因此,如前所述,在运行行DateSelect.value = "InRange"时,我希望所有其他下拉菜单(我称为child_ID)都启用,而现在,虽然代码更改了它们的值,但它们在运行form.Click时将不会应用。

在此先感谢您的帮助!

0 个答案:

没有答案