0

在文本框上粘贴值后,我试图单击按钮。但是,我尝试过的所有代码似乎都不起作用。在同一列上有 2 个文本框和几个按钮。在单击第一个按钮后,我使用以下代码打开了一个新框架:

Set the_button_elements = doc.getElementsByTagName("div")
For Each button_element In the_button_elements
    If button_element.getAttribute("class") = "pzbtn-mid" Then
        button_element.Click
        Exit For
    End If
    Next button_element

我已经尝试通过更改标签名称和属性以及下面的代码,但它仍然不起作用:

doc.querySelectorAll("[type=button]").item(3).Click

下面是与上述代码一起使用的第一个按钮的元素:

 <button type="button" class="pzhc" id="AcctNumber" 
 disabled="" onclick="this.disabled=true;javascript: LoadAcct();"
 title="Search"> 
<div class="pzbtn-lft">
<div class="pzbtn-rgt">
<div class="pzbtn-mid" data-click="...">
<img class="pzbtn-i">Go</div></div></div></button>

下面是下一个按钮的元素,我正在尝试查找使其工作的代码:

<button type="button" class="pzhc" id="SearchBtn" 
 disabled="true"onclick="getCaseDetails();"> 
<div class="pzbtn-lft">
<div class="pzbtn-rgt">`enter code here`
<div class="pzbtn-mid">
<img class="pzbtn-i">Search</div></div></div></button>

感谢有人可以通过向我提供单击按钮的代码来指导我,因为即使在粘贴文本后按钮仍然是灰色的。然而,这与第一个代码的情况相同,但它仍然有效。

4

1 回答 1

0

也许问题与 disabled 属性有关。如果我们想点击按钮,我们应该确保它处于启用状态。单击第一个按钮或文本框更改事件后,您可以使用以下 JavaScript 代码启用“搜索”按钮:

document.getElementById("SearchBtn").disabled = false;

您可以检查以下示例:

   <button type="button" class="pzhc" id="AcctNumber"  onclick='this.disabled=true;javascript: alert("Go");  document.getElementById("SearchBtn").disabled = false;'
        title="Search">
    <div class="pzbtn-lft">
        <div class="pzbtn-rgt">
            <div class="pzbtn-mid" data-click="...">
                <img class="pzbtn-i">Go
            </div>
        </div>
    </div>
</button>

<button type="button" class="pzhc" id="SearchBtn"
       disabled="true" onclick='javascript: alert("Search");'>
    <div class="pzbtn-lft">
        <div class="pzbtn-rgt">
            `enter code here`
            <div class="pzbtn-mid">
                <img class="pzbtn-i">Search
            </div>
        </div>
    </div>
</button>

然后,如果我使用下面的 VBA 脚本单击按钮,它将单击 Go 按钮,然后启用搜索按钮并单击它:

Sub login()

    Const Url$ = "https://dillion132.github.io/vbatestpage.html"

    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")

    With ie    
        .navigate Url
        ieBusy ie
        .Visible = True
        'Find the related button
        Dim button_go_element As Object, button_search As Object

        Set button_go_element = .document.getElementById("AcctNumber")
        Set button_search = .document.getElementById("SearchBtn")
        button_go_element.Click
        button_search.Click

    End With

End Sub

Sub ieBusy(ie As Object)
    Do While ie.Busy Or ie.readyState < 4
        DoEvents
    Loop
End Sub
于 2019-08-23T10:57:07.597 回答