如题:webbrowser中如何模拟点击下拉列表(select)选项doc.getElementByID("grade").selectedIndex = 3
doc.getElementByID("grade").Options(3).Selected =true用以上两种方法都可以”表面上“选择指定选项,如图:
但点击提交按钮时,它实际上是无效的(显示为灰色字体),又会恢复为”选择年级“。
手动选择时是这样显示的(黑色字体),这样才是有效的选择:附节选网页源代码
<select name="grade_id" id="grade" style="color: rgba(100, 100, 100, 0.4);">
<option value="" hidden="hidden" style="color: black;">选择年级</option>
<option value="1" style="color: black;">一年级(小学)</option>
<option value="2" style="color: black;">二年级(小学)</option>
<option value="3" style="color: black;">三年级(小学)</option>
<option value="4" style="color: black;">四年级(小学)</option>
<option value="5" style="color: black;">五年级(小学)</option>
<option value="6" style="color: black;">六年级(小学)</option>
<option value="7" style="color: black;">七年级(初一)</option>
<option value="8" style="color: black;">八年级(初二)</option>
<option value="9" style="color: black;">九年级(初三)</option>
<option value="10" style="color: black;">高一(高中)</option>
<option value="11" style="color: black;">高二(高中)</option>
<option value="12" style="color: black;">高三(高中)</option>
</select>要怎样才能有效选择某个选项呢?
请大神帮帮忙
doc.getElementByID("grade").Options(3).Selected =true用以上两种方法都可以”表面上“选择指定选项,如图:
但点击提交按钮时,它实际上是无效的(显示为灰色字体),又会恢复为”选择年级“。
手动选择时是这样显示的(黑色字体),这样才是有效的选择:附节选网页源代码
<select name="grade_id" id="grade" style="color: rgba(100, 100, 100, 0.4);">
<option value="" hidden="hidden" style="color: black;">选择年级</option>
<option value="1" style="color: black;">一年级(小学)</option>
<option value="2" style="color: black;">二年级(小学)</option>
<option value="3" style="color: black;">三年级(小学)</option>
<option value="4" style="color: black;">四年级(小学)</option>
<option value="5" style="color: black;">五年级(小学)</option>
<option value="6" style="color: black;">六年级(小学)</option>
<option value="7" style="color: black;">七年级(初一)</option>
<option value="8" style="color: black;">八年级(初二)</option>
<option value="9" style="color: black;">九年级(初三)</option>
<option value="10" style="color: black;">高一(高中)</option>
<option value="11" style="color: black;">高二(高中)</option>
<option value="12" style="color: black;">高三(高中)</option>
</select>要怎样才能有效选择某个选项呢?
请大神帮帮忙
解决方案 »
- VB怎样生成一个指定图标的可执行文件?
- 这两行代码看不懂,哪位老师给讲讲呀?
- 如何使用WORD VBA取得WORD文档中交叉引用的链接源的位置
- 路径/文件访问错误!
- 求救各位高手!关于VB的Mscomm控件:
- 请问如何判断一个文件是否存在的?
- (急)怎样计算网络服务器的响应时间?
- (转贴,觉得有用就顶一下。)杜运庆:以前写的一些小文章,希望大家能喜欢,真诚地希望同大家成为朋友,尽管我很菜,但我是无私的。....
- 用vb6创建一个能被delphi,Vc调用的动态库
- 求点是否在多边形内的算法!谢谢~!
- VB写的Winsock程序,在Win10 64位系统上经常无法接收到数据,是什么原因呢?
- 请问如何在vb webbrowser 指定位置插入(或修改)代码
多谢提醒!我不确定是select元素的通病还是网站程序的设定。好像是select固有的问题。麻烦您帮我试试。直接发网址怕会违规,发个图
我还说方法不是已说了嘛
现在只记得一个了你直接赋值行不行??前晚也在点联动下拉框,最后解决办法就是直接规换选项。<option value="" hidden="hidden" style="color: black;">选择年级</option>变成
<option value="1" hidden="hidden" style="color: black;">你要的文字</option>value=" " 选择年级 都改成你的值
doc.getElementByID("grade").onchange其中doc.getElementByID("grade")可以改为:doc.all.grade,这样要简洁得多doc.all.grade.onchange如果报错可以尝试:
doc.all.grade.fireEvent "onchange"另外,如果你的这个页面里加载了jquery库的话就更加方便了,可以用:
WebBrowser1.Document.parentWindow.ExecScript "$('#grade').val('3').change();"红色为WebBrowser执行js代码的固定用法,绿色为jquery代码。是不是超简洁?你试下,如果不能用可以自己加载个jquery库,方法:
WebBrowser1.Document.parentWindow.execScript "var script = document.createElement('script');script.src = 'https://cdn.staticfile.org/jquery/1.11.2/jquery.min.js';document.getElementsByTagName('head')[0].appendChild(script);"
多谢版主大大!又学到了。
但是按照您说的触发onchange或onclick,还是不行。难点在于我不太看得懂它的js脚本。脚本地址:https://exam.jxeduyun.com/static/js/app.7b529c2703a42c0be8f7.js
难就难在这个元素后没有event,而它这个js代码又是乱的。按理它的event无外乎onclick,onchange,但试了fireEvent这两个event,都没效果。我试过了一般的select,可以用上面我的方法选择某项,所以应该不是select固有的通病,正如您所说,这个网页应该是用了代码来检测。难道无解吗?真的很想知道解决办法,不搞明白谁都睡不着啊
难就难在这个元素后没有event,而它这个js代码又是乱的。按理它的event无外乎onclick,onchange,但试了fireEvent这两个event,都没效果。我试过了一般的select,可以用上面我的方法选择某项,所以应该不是select固有的通病,正如您所说,这个网页应该是用了代码来检测。难道无解吗?真的很想知道解决办法,不搞明白谁都睡不着啊加q远程看看呢