繁体   English   中英

在Internet Explorer中单击

[英]Clicking in Internet Explorer

我必须编写用于在Internet Explorer中单击的简单程序,但是已经开始,但是由于我在编程方面的经验很少,所以无法使用。 在首页11.html中,我需要在下一个“ Sign2”上单击带有文本“ Sign1”的按钮

//11.html    
<input type="button" class="button" onclick="document.location='21.html'" value="Sign1"> 

//21.html    
<input type="button" class="button" onclick="document.location='31.html'" value="Sign2"> 

怎么了? 第二个按钮不起作用。

Public Class Form1 Public ie = CreateObject("InternetExplorer.Application")

Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
    ie.Visible = True
    ie.navigate("http://....com/11.html")
    Do
    Loop Until ie.ReadyState = 4
    Actions()
End Sub

Private Sub Actions()
    Dim eInputs = ie.Document.GetElementsByTagName("input")
    For Each eInput In eInputs
        If eInput.GetAttribute("value") = "Sign1" Then
            eInput.Click()
            Exit For
        End If
    Next

    Threading.Thread.Sleep(5000)

    //here ie href is about:blank - WHY???
    eInputs = ie.Document.GetElementsByTagName("input")
    For Each eInput In eInputs
        If eInput.GetAttribute("value") = "Sign2" Then
            eInput.Click()
            Exit For
        End If
    Next
End Sub
End Class

我在这里看到两个问题:

  • 西里尔字母:

     If eInput.GetAttribute("value") = "Подписать2" Then 

    我认为您无法将这些字符硬编码到源代码中,
    因为它们不会被编译器读取。 因此,很有可能getAttribute方法返回了正确的字符串,但随后将其与??????进行了比较。 一个,所以找不到它。 也许,您可能想从外部来源( txt文件,数据库等)获取它们。

  • 两个按钮之间没有等待时间:

    如您所说, 第二个按钮不起作用。 (非常宽泛的定义:正在做什么?正在引发错误吗?),我认为第一个是。 因此,可能是您已经找到一种解决字母问题的方法。 因此,我认为问题是您一次单击和另一次单击之间没有等待足够的时间,因此当您单击第二个按钮时,该页面尚未加载。

    基本上:

    1)您点击客户端中的按钮1(例如Google Chrome);

    2)单击按钮1会在后端调用一个动作,因此服务器将开始生成新的HTML文档,您将在其中寻找按钮2;

    3)...但是,您没有给服务器任何时间来重新生成页面,因此您已经在寻找按钮2了,因为服务器没有结束重新生成,按钮2在您的客户端中可能还不存在。

    所以,这就是为什么它不起作用的原因。 如果是这种情况,请添加一条命令,等待一段时间才能找到按钮2。由于您引用了所有.NET语言,因此尚不清楚您使用的是哪种语言开发,但查看的代码可以识别VB。净。

因此,要在VB.NET中等待5秒钟,然后再运行代码的第二部分:

Threading.Thread.Sleep(5000)

放在第一个和第二个For Loop

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM