Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 让WebBrowser在VB.net中单击一次带有特定类的网页上的按钮_Html_Vb.net_Click_Webbrowser Control_Getelementsbytagname - Fatal编程技术网

Html 让WebBrowser在VB.net中单击一次带有特定类的网页上的按钮

Html 让WebBrowser在VB.net中单击一次带有特定类的网页上的按钮,html,vb.net,click,webbrowser-control,getelementsbytagname,Html,Vb.net,Click,Webbrowser Control,Getelementsbytagname,我试图让webbrowser单击网页中的特定按钮: 按钮的html代码类似于,到目前为止,我单击此按钮的代码是: For Each Element As HtmlElement In WebBrowser2.Document.GetElementsByTagName("a") If Element.OuterHtml.Contains("btn btn-large play") Then Element.InvokeMember("click") End If 这是可行的,但它会让网络浏览者一

我试图让webbrowser单击网页中的特定按钮:

按钮的html代码类似于
,到目前为止,我单击此按钮的代码是:

For Each Element As HtmlElement In WebBrowser2.Document.GetElementsByTagName("a")
If Element.OuterHtml.Contains("btn btn-large play") Then
Element.InvokeMember("click")
End If
这是可行的,但它会让网络浏览者一次又一次地点击按钮。你知道我怎样才能做到两次吗?

也许就是这样吧?:)

也许就是这样?:)


为什么不尝试检测webbrowser中的元素类型:

源于@ElektroStudios的代码片段,我只是一个粘贴代码而不添加属性的lammer。


稍后,您可以将
MsgBox(“您单击了一个链接”)
替换为某个函数、事件或子函数,然后执行您想要的操作..:D

为什么不尝试检测webbrowser中的元素类型:

源于@ElektroStudios的代码片段,我只是一个粘贴代码而不添加属性的lammer。


稍后,您可以将
MsgBox(“您单击了一个链接”)
替换为某个函数、事件或子函数,然后执行您想要的操作..:D

如果您已经单击了该项,则足以退出
FOR
循环,因此请尝试以下操作:

For Each Element As HtmlElement In WebBrowser2.Document.GetElementsByTagName("a")

    If Element.OuterHtml.Contains("btn btn-large play") Then

        Element.InvokeMember("click")
        Exit For

    End If

Next Element 

如果您已经单击了该项目一次,就足以退出FOR循环,请尝试以下操作:

For Each Element As HtmlElement In WebBrowser2.Document.GetElementsByTagName("a")

    If Element.OuterHtml.Contains("btn btn-large play") Then

        Element.InvokeMember("click")
        Exit For

    End If

Next Element 
试试这个:

Public count as integer=0

Private Sub WebBrowser_DocumentCompleted(ByVal sender As System.Object,ByVal e As WebBrowserDocumentCompletedEventArgs) _
Handles WebBrowser1.DocumentCompleted

If count<2 then

For Each Element As HtmlElement In WebBrowser2.Document.GetElementsByTagName("a")
If Element.OuterHtml.Contains("btn btn-large play") Then
Element.InvokeMember("click")
End If

count=count+1
end if

End Sub
公共计数为整数=0
私有子WebBrowser_DocumentCompleted(ByVal发件人作为System.Object,ByVal e作为WebBrowser DocumentCompletedEventArgs)_
处理WebBrowser1.DocumentCompleted
如果计数请尝试以下方法:

Public count as integer=0

Private Sub WebBrowser_DocumentCompleted(ByVal sender As System.Object,ByVal e As WebBrowserDocumentCompletedEventArgs) _
Handles WebBrowser1.DocumentCompleted

If count<2 then

For Each Element As HtmlElement In WebBrowser2.Document.GetElementsByTagName("a")
If Element.OuterHtml.Contains("btn btn-large play") Then
Element.InvokeMember("click")
End If

count=count+1
end if

End Sub
公共计数为整数=0
私有子WebBrowser_DocumentCompleted(ByVal发件人作为System.Object,ByVal e作为WebBrowser DocumentCompletedEventArgs)_
处理WebBrowser1.DocumentCompleted

If count此循环遍历给定文档中的所有元素。通过假设只有一个元素包含OuterHtml文本“btn btn large play”,每次使用此循环时,只会单击一次。从您的代码中,我不知道该循环何时/多少次被使用,但据推测,它位于一个被多次调用的方法中。该循环迭代给定文档中的所有元素。通过假设只有一个元素包含OuterHtml文本“btn btn large play”,每次使用此循环时,只会单击一次。从您的代码中,我不知道该循环何时/多少次被使用,但据推测,它位于一个被多次调用的方法中。如果现在按钮被“一次又一次”单击,则使用您的代码,它将被单击2*(一次又一次):)这似乎不是OP抱怨的问题的解决方案。@varocabas不应该在第二次单击后返回exit the loop?如上所述,问题似乎不是由循环本身引起的,而是由“where”(方法)引起的,该循环似乎被多次调用。如果中断循环或退出该方法,将无法避免再次调用该方法。OP应该解释在什么条件下调用这个循环。@varocarbas或者可能只有几个按钮包含“btn btn大播放”?这也是可能的(一两个或一百个;它是outertext…),但是如果OP没有更好地描述条件,没有办法准确地帮助他。如果现在按钮“一次又一次”被点击,你的代码会被点击2*(一次又一次):)这似乎不是OP抱怨的问题的解决办法。@varocarbas不应该在第二次点击后返回退出循环?如上所述,这个问题似乎不是由循环本身引起的,而是由执行这个循环的“where”(方法)引起的,它似乎被多次调用。如果中断循环或退出该方法,将无法避免再次调用该方法。OP应该解释在什么条件下调用这个循环。@varocarbas或者可能只有几个按钮包含“btn btn大播放”?这也是可能的(一两个或一百个;它是outertext…),但是如果OP没有更好地描述条件,无法准确地帮助他。提供没有作者属性(Me)的代码段违反了SO条款。提供没有作者属性(Me)的代码段违反了SO条款。