VB6.0在WebBrowser下无法触发<提交试卷>按钮,请求帮助
已知此方式WebBrowser1.document.getElementById("rWaqiaFByAeNfCkL").Click无效。
网页源代码:div class="west" handler="west" solt="west"> div class="ds_container ds_control no_padding" id="rWaqiaFByAeNfCkL" style="top: 0px; width: 300px; bottom: 0px; margin-right: 0px; margin-left: -300px;" ctrl_type="Container" caption="WestView"> div class="ds_exam_timer"> div class="ds_exam_post">提交试卷
在VB6.0中,可以通过WebBrowser控件来模拟用户在网页上的操作,包括点击按钮、填写表单等。如果您想在WebBrowser中触发提交试卷按钮,可以按照以下步骤进行操作:
WebBrowser1.Navigate "http://www.example.com/exam.html"
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If URL = "http://www.example.com/exam.html" Then
' 页面加载完成,可以进行操作
End If
End Sub
Dim buttons As Object
Set buttons = WebBrowser1.Document.GetElementsByTagName("button")
Dim button As Object
For Each button In buttons
If button.InnerText = "提交试卷" Then
' 找到提交试卷按钮,可以进行点击操作
button.Click
Exit For
End If
Next
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If URL = "http://www.example.com/result.html" Then
' 页面重新加载完成,可以获取结果
End If
End Sub
以上就是在VB6.0中使用WebBrowser控件触发提交试卷按钮的步骤。需要注意的是,由于WebBrowser控件是基于Internet Explorer的,因此可能存在兼容性问题。如果您遇到了问题,可以尝试使用其他的浏览器控件或者第三方库来实现。
基于new Bing的编写解答:
根据您提供的信息,网页源代码中提交试卷按钮的id为"rWaqiaFByAeNfCkL",但是在WebBrowser下无法触发点击事件。可能存在以下几种原因:
您可以尝试以下方法:
Private Sub WebBrowser1_DocumentCompleted(ByVal pDisp As Object, URL As Variant)
If (pDisp Is WebBrowser1.Object) Then
Dim Wb As SHDocVw.WebBrowser
Set Wb = pDisp
If (Wb.ReadyState = READYSTATE_COMPLETE) Then
WebBrowser1.document.getElementById("rWaqiaFByAeNfCkL").Click
End If
End If
End Sub
可以借鉴下
下午做webbrowser登陆和讯博客发贴,遇到两个问题
一 webbrowser填写好登陆框,点登陆按钮没有反映。我确定webbrowser正确找到了登陆按钮。这个登陆按钮有 click事件,被点击时会触发一个javascript函数,但是应该没区别啊。即使那个函数里有做了什么,webbrowser点击登陆按钮应该也会 像手工点击一样触发整个函数过程吧。至今没有找到原因,采取的解决办法是从其他登陆框登陆进去了。现在门户网站都有通行证一说,很多地方都可以登陆,一旦 登陆,就可以访问网站的所有应用,比如邮箱、博客、相册等。
二 提交日记的时候,webbrowser点提交按钮,又没反应。
提交日记只能点这个地方的提交按钮,可没有其他地方可以替代。不过这次找到原因了,
那个按钮有click和mousedown两个javascript事件函数。手动点击,会先触发鼠标的mousedown事件函数,再触发click事件函数;
而webbrowser点击时候,就只触发了click事件函数。因此要用程序补上mousedown函数里的操作,之后webbrowser再提交,OK了!
btn.Focus();
btn.InvokeMember("mousedown");
btn.InvokeMember("click");
btn.InvokeMember("onmousedown");
btn.InvokeMember("onclick");
引用chatGPT作答,根据您提供的信息,可能存在以下问题:
1.按钮ID不正确:请确保使用的ID正确,检查页面源代码中是否有其他具有相同ID的元素。
2.按钮未完全加载:在单击按钮之前,请确保页面已完全加载,可以使用WebBrowser1.ReadyState属性进行检查。如果ReadyState不等于4,则表示页面仍在加载中,您需要等待页面完全加载后再进行操作。
3.按钮被禁用:请检查按钮是否被禁用,如果是,则无法单击按钮。您可以通过检查按钮的disabled属性进行检查,如果disabled属性设置为true,则表示按钮被禁用。
4.代码执行顺序不正确:请确保代码执行顺序正确。例如,在单击按钮之前,您需要确保已对按钮进行了正确的DOM元素选择。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
首先,确认该按钮的ID为rWaqiaFByAeNfCkL
,可以在WebBrowser中使用F12开发者工具查看源代码进行确认。
如果直接调用WebBrowser1.document.getElementById("rWaqiaFByAeNfCkL").Click
无效,那么可以尝试模拟单击鼠标左键的方式。
以下是示例代码:
Private Sub Command1_Click()
Dim oElem As Object
Set oElem = WebBrowser1.Document.getElementById("rWaqiaFByAeNfCkL")
oElem.Focus
oElem.FireEvent ("onclick")
End Sub
代码解释:
Set
关键字将对象引用赋值给oElem
变量。Focus
方法。onclick
事件,使用FireEvent
方法。注意事项:
Do While
或者Do Until
循环等待元素对象出现,或者使用Application.Wait
等待一定时间。希望这些信息可以帮到你!
如果我的回答解决了您的问题,请采纳!
网页代码中只有样式代码,而"west"句柄代码没有,而按钮无响应,很大可能就是句柄中的某个函数出现错误,导致提交失败。