以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 憋了好久,还是请教一下吧 (http://foxtable.com/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
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
Dim elem = web.Document.Window.Frames(2).Document.getelementsByTagName("input")(1) elem.InvokeMember("click") |
-- 作者:125803629 -- 发布时间:2015/12/9 10:21:00 -- |