使用元素完成IE表单

时间:2018-02-09 16:27:43

标签: vba internet-explorer web-scraping ie-automation

我正在尝试使用VBA在输入框中输入值但没有运气!     下面是我的代码和网站上的HTML

网站开放后

VBA:

IE.GetElementByID("searchForm").Value = "test"

HTML检查元素

<form class="well well-search hidden-print" id="searchForm" 
    <div class="row">
        <div class="col-sm-4">
            <input name="search" class="form-control" type="text" size="20" maxlength="20" value="">
        </div>
        <div class="col-sm-2 col-sm-offset-6 right">
            <label>&nbsp;</label>
            <button class="btn btn-success btn-xs showLoadingText form-control" type="submit" data-loading-text="searching...">Search</button>
        </div>
    </div>
</form>

1 个答案:

答案 0 :(得分:0)

您的IE变量具有成为InternetExplorer应用程序的直观表示,因此我假设下面的代码块不是您设置IE对象的方式(这将是一件好事)。

但话虽如此,我并没有看到你设置 IE的位置,但如果你没有这样做:

Set IE = objIE.Document

然后您正在尝试做的正确语法是:

IE.Document.GetElementByID("searchForm").Value = "test"

这是假设您在尝试抓取元素之前已经确定网页已完全加载。如果您还没有确定这一点,那么在使用元素之前需要添加以下语句:

Do While IE.Busy Or IE.ReadyState < 4
    DoEvents
Loop