【问题标题】:VB.NET GetElementByTagName Doesn't workVB.NET GetElementByTagName 不起作用
【发布时间】:2017-12-02 11:10:39
【问题描述】:

我想使用 InvokeMember("click") 代码按下网站中的按钮。基本上网站的html代码就是这个:

                   <em class='coins'>
                    <span class="click"></span>

我尝试使用找到的答案HERE,但它似乎不起作用。你知道为什么吗?我做错了什么吗?我也使用了

If elem.InnerText = "Login" Then

但它似乎也没有帮助。 这是我在 Visual Studio 中的 Windows 窗体应用程序中的代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For Each elem As HtmlElement In WebBrowser1.Document.GetElementsByTagName("span")

        If elem.GetAttribute("class") = "click" Then

                elem.InvokeMember("click")
            End If
        End If
    Next
End Sub

对不起,如果这个问题算作重复,它和我做的另一个不一样

【问题讨论】:

    标签: vb.net dom getelementbyid


    【解决方案1】:

    我认为你必须使用 (className) 和 (.Equals() 来表示两个字符串) 像这样的代码:-

        If elem.GetAttribute("className").Equals("free-coins-click") Then
    
                elem.InvokeMember("click")
            End If
        End If
    

    【讨论】:

    • 天哪,我爱你,过去 3 天我一直在学习编程,现在每天花 6 个多小时,只是为了找到我需要的东西和它的 2 行代码。你让我很开心非常感谢你!!!
    • 我会尽快选择它作为解决方案
    • .Equals() 调用不是必要的。这同样有效:If elem.GetAttribute("className") = "free-coins-click" Then。也请注意@oToGaming 的未来。
    • @VisualVincent,虽然.Equals() 不是必需的,但它的使用(尤其是它的重载)比依赖于Option Compare 设置的VB 字符串相等运算符产生更容易预测的结果(参见:@ 987654321@。VB 相等运算符还将Nothing (null) 视为空字符串,这会使不熟悉该语言细微差别的人感到困惑。
    • @TnTinMn :是的 它的重载 我可以同意它们更“强大”,但是在检查简单(非空)字符串的情况下 使用 no重载 除非将Option Compare 设置为Text,否则不会有太大区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2013-12-19
    相关资源
    最近更新 更多