以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  憋了好久,还是请教一下吧  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78423)

--  作者:125803629
--  发布时间:2015/12/9 7:46:00
--  憋了好久,还是请教一下吧
Dim web As System.Windows.Forms.WebBrowser= e.Form.Controls("WebBrowser1").baseControl
Dim elem As System.Windows.Forms.HtmlElement

elem = web.Document.Window.Frames(2).Document.GetElementByID("addButton")   
elem.InvokeMember("click")   
这句代码执行顺利:
但写成下面的代码:
Dim web As System.Windows.Forms.WebBrowser= e.Form.Controls("WebBrowser1").baseControl
Dim elem As System.Windows.Forms.HtmlElement

If elem = web.Document.Window.Frames(2).Document.GetElementByID("addButton")   Then
elem.InvokeMember("click")   
Else
End If
不报错,但不执行。
想加个判断执行。




--  作者:狐表开发
--  发布时间:2015/12/9 8:21:00
--  
条件不符合,执行的是ELSE语句
--  作者:125803629
--  发布时间:2015/12/9 8:48:00
--  
谢谢,有了进展。继续琢磨
--  作者:Hyphen
--  发布时间:2015/12/9 9:02:00
--  
Dim web As System.Windows.Forms.WebBrowser= e.Form.Controls("WebBrowser1").baseControl
Dim elem = web.Document.Window.Frames(2).Document.GetElementByID("addButton")

If elem  isnot nothing  Then
elem.InvokeMember("click")   
Else
End If

--  作者:125803629
--  发布时间:2015/12/9 9:40:00
--  
谢谢:


If elem <> web.Document.Window.Frames(2).Document.GetElementByID("addButton")   Then
    elem = web.Document.Window.Frames(2).Document.GetElementByID("addButton")
    elem.InvokeMember("click")  
End If
这段执行:
下面这段报错:
If elem  isnot nothing  Then
elem.InvokeMember("click")   
Else
End If



--  作者:125803629
--  发布时间:2015/12/9 9:43:00
--  
报错内容如下:
Value of \'78\' is not valid for \'index\'. \'index\' should be between 0 and 77.
Parameter name: index
好像也执行了,问题下面的代码跟不上。

--  作者:大红袍
--  发布时间:2015/12/9 9:46:00
--  

报什么错啊?

 

Do Until web.ReadyState = 4 AndAlso web.Document.Window.Frames(2).Document.GetElementByID("addButton") IsNot Nothing

    Application.DoEvents
Loop

 

Dim elem = web.Document.Window.Frames(2).Document.GetElementByID("addButton")

elem.InvokeMember("click")


--  作者:125803629
--  发布时间:2015/12/9 10:04:00
--  
Dim web As System.Windows.Forms.WebBrowser= e.Form.Controls("WebBrowser1").baseControl
Dim elem As System.Windows.Forms.Htmlelement
Dim elems As System.Windows.Forms.Htmlelement
web.ScriptErrorsSuppressed = True
\'////////////////////////////////
If elem <> web.Document.Window.Frames(2).Document.GetElementByID("addButton")   Then
    elem = web.Document.Window.Frames(2).Document.GetElementByID("addButton")
    elem.InvokeMember("click")   
End If
点击按钮后这段成功进入:但不执行下面的代码:需要再点击一下按钮才执行下面的代码:
If elem <> web.Document.Window.Frames(2).Document.getelementsByTagName("input")( 1 ) Then
   elem = web.Document.Window.Frames(2).Document.getelementsByTagName("input")( 1 )
   elem.InvokeMember("click") 
End If
这样的话,填一张表。需要点击两下按钮:
我想要的结果是:点击一下按钮,持续执行第二段代码。执行完后自动重头执行第一段代码,,,,如此反复。
注明:第一段执行时间短,第二段执行时间长。
不知道,我说明白了没。
就这点东西,还是反复参考了,大红袍,bin,的帖子弄的,在这里先谢谢了。你们的帖子很有帮助,如果能看到你们的系列贴,就更好了。


--  作者:大红袍
--  发布时间:2015/12/9 10:07:00
--  

不会做,就做例子上来。

 

Do Until web.ReadyState = 4 AndAlso web.Document.Window.Frames(2).Document.getelementsByTagName("input")(1) IsNot Nothing

    Application.DoEvents
Loop

 

Dim elem = web.Document.Window.Frames(2).Document.getelementsByTagName("input")(1)

elem.InvokeMember("click")


--  作者:125803629
--  发布时间:2015/12/9 10:21:00
--