Foxtable(狐表)用户栏目专家坐堂 → 网页赋值后为什么没出现结果且即刻恢复默认值


  共有3473人关注过本帖树形打印复制链接

主题:网页赋值后为什么没出现结果且即刻恢复默认值

帅哥哟,离线,有人找我吗?
cxmxjwlmq
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:349 积分:4166 威望:0 精华:0 注册:2018/4/6 18:02:00
网页赋值后为什么没出现结果且即刻恢复默认值  发帖心情 Post By:2021/3/4 15:59:00 [只看该作者]

各位老师:我在系统中引用一个窗口中的网面,我想在一个网面的输入框中赋值,代码如下:

.....

web1.Document.GetElementById("ctl00_C_frmStart").SetAttribute("Value", "2021-03-01")       '查询-开始时间
web1.Document.GetElementById("ctl00_C_frmEnd").SetAttribute("Value", "2021-03-31")         '查询-结束时间
web1.Document.GetElementById("ctl00_C_frmSCXMC").SetAttribute("Value", "新疆1线")          '生产线
web1.Document.GetElementById("ctl00_C_ischeck").SetAttribute("Value", "9")'"全部")         '状态
web1.Document.GetElementById("ctl00_C_frmDPH").SetAttribute("Value", "MJ000062")           '底盘号
web1.Document.GetElementById("ctl00_C_btnSearch").InvokeMember("click")                    '点击查询按钮

.....

 

现在是:这些数值都赋值给相应的输入框中后,即刻在相应的输入框中出现网页的默认数值!如下图;

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210304155303.png
图片点击可在新窗口打开查看

 

我想达成的效果是:完成赋值并出现查询数据。如下图:

 

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210304155254.png
图片点击可在新窗口打开查看

 

麻烦各位老师费心!

[此贴子已经被作者于2021/3/4 15:59:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 16:51:00 [只看该作者]

贴出完整代码,代码放在那里的?

 回到顶部
帅哥哟,离线,有人找我吗?
cxmxjwlmq
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:349 积分:4166 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2021/3/4 17:22:00 [只看该作者]

全部代码:

'Dim web As System.Windows.Forms.WebBrowser = Forms("公司SCF系统").Controls("WebBrowser1").Basecontrol
Dim web1 As System.Windows.Forms.WebBrowser = Forms("公司SCF系统").Controls("WebBrowser2").Basecontrol
'             web.Navigate("http://。。。。")
'             web.Navigate("http://。。。")
          Do Until web1.ReadyState = 4
             Application.DoEvents
          Loop
'           web.Document.GetElementById("UserName").SetAttribute("Value", "...")
'           web.Document.GetElementById("Password").SetAttribute("Value", ".....")
'           web.Document.GetElementById("btnSubmit").InvokeMember("click")

Forms("公司SCF系统").Show()
           web1.Navigate("http://。。。。。")
           Forms("公司SCF系统").controls("Textbox1").Text = "下线条码打印"

                'web1.Document.Window.Frames("公司SCF系统").Document.GetElementById("ctl00_C_frmSCXMC").SetAttribute("Value", "新疆1线") '获得第二个FrAMES框架里面的ID为"username"的的HTML标签元素,并且将其Value设置为"test138"
                'web1.Document.Window.Frames("公司SCF系统").Document.GetElementById("ctl00_C_frmDPH").SetAttribute("Value", "MJ000062")  '获得第二个FrAMES框架里面的ID为"pwd1"的的HTML标签元素,并且将其Value设置为"a110110"
                '如果元素不是在Frame框架中,那么直接 web.Document.GetElementById 即可
web1.Document.GetElementById("ctl00_C_frmStart").SetAttribute("Value", "2021-03-01")       '查询-开始时间
web1.Document.GetElementById("ctl00_C_frmEnd").SetAttribute("Value", "2021-03-31")         '查询-结束时间
web1.Document.GetElementById("ctl00_C_frmSCXMC").SetAttribute("Value", "新疆1线")          '生产线
web1.Document.GetElementById("ctl00_C_ischeck").SetAttribute("Value", "9")'"全部")         '状态
web1.Document.GetElementById("ctl00_C_frmDPH").SetAttribute("Value", "MJ000062")           '底盘号
web1.Document.GetElementById("ctl00_C_btnSearch").InvokeMember("click")                    '点击查询按钮

 

代码在一个窗口的按钮的Click事件,调用Forms("公司SCF系统")窗口出现查询数据!

 

请老师费心!

[此贴子已经被作者于2021/3/4 17:58:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/4 17:24:00 [只看该作者]

Dim web1 As System.Windows.Forms.WebBrowser = Forms("公司SCF系统").Controls("WebBrowser2").Basecontrol
web1.Navigate("http://172.20.210.100:1000/MotorLM/SCGL/SCJH_RLJDJHXP.aspx")
Do Until web1.ReadyState = 4
             Application.DoEvents
          Loop
web1.Document.GetElementById("ctl00_C_frmStart").SetAttribute("Value", "2021-03-01")  
……

 回到顶部
帅哥哟,离线,有人找我吗?
cxmxjwlmq
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:349 积分:4166 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2021/3/4 17:42:00 [只看该作者]

谢谢蓝老师!

感谢!


 回到顶部
帅哥哟,离线,有人找我吗?
cxmxjwlmq
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:349 积分:4166 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2021/3/5 12:09:00 [只看该作者]

不好意思,蓝老师,还得麻烦您以下问题:

 

1、网页中有一个 checkbox单选框,我想要直接赋值为选中,但用以下代码:

 

web1.Document.GetElementById("ctl00_C_gv_ctl02_cb").InvokeMember(ctl00_C_gv_ctl02_cb.Checked = True)

提示:未将对象引用设置到对象的实例。

网页分析如下:

 

<TD align=center><INPUT id=ctl00_C_gv_ctl02_cb CHECKED type=checkbox name=ctl00$C$gv$ctl02$cb> </TD>

 

2、网页中有一个 checkbox单选框,我想要直接赋值为选中,但用以下代码:

web1.Document.GetElementById("ctl00_C_gv_ctl02_GridView2").InvokeMember(ctl00_C_gv_ctl02_GridView2.Checked = True)

  提示未将对象引用设置到对象的实例。

网页分析如下:

<TABLE id=ctl00_C_gv_ctl02_GridView2 class=m_table style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=0>

 

 

 这是未赋值开后的效果:

 


此主题相关图片如下:微信图片_20210305114947.png
按此在新窗口浏览图片

 

我想要的效果是两个都选上:效果如下图

 


此主题相关图片如下:微信图片_20210304155254.png
按此在新窗口浏览图片

 

谢谢!麻烦老师费心!

[此贴子已经被作者于2021/3/5 12:11:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/5 12:15:00 [只看该作者]

web1.Document.GetElementById("ctl00_C_gv_ctl02_cb").SetAttribute("checked", "checked") 

 回到顶部
帅哥哟,离线,有人找我吗?
cxmxjwlmq
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:349 积分:4166 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2021/3/5 13:56:00 [只看该作者]

老师,不好意思,还是出现如下提示,两个框没有选中

如下图:

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20210305134732.png
图片点击可在新窗口打开查看

 

 

可能是网页解析的问题吗?网页解析如下(两个单选框的网页):

 

……..

<DIV>

<TABLE id=ctl00_C_gv class=m_table style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=0>

<TBODY>

<TR>

<TH style="WIDTH: 20px" scope=col><SPAN title=全选/取消><INPUT onclick=ctl00$C$gv$ctl02$cb.checked=ctl00$C$gv$ctl01$ctl16.checked; id=ctl00_C_gv_ctl01_ctl16 type=checkbox name=ctl00$C$gv$ctl01$ctl16></SPAN></TH>

 

<TH scope=col>序号</TH>

<TH scope=col>采集零件</TH>

……..

 

<TD align=center><INPUT id=ctl00_C_gv_ctl02_cb CHECKED type=checkbox name=ctl00$C$gv$ctl02$cb> </TD>

<TABLE id=ctl00_C_gv_ctl02_GridView2 class=m_table style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=0>

<TBODY>

 

<TD style="WIDTH: 50px">1 </TD>

 

<TD style="WIDTH: 50px"><A href="javascript:expandcollapse('divMJ000062', 'one');"><IMG id=imgdivMJ000062 border=0 alt="Expand to show Orders" src="/Images/plus.gif" width=9> </A>

 

<TD style="WIDTH: 80px" vAlign=middle align=center>新疆1线</TD>

……


老师辛苦!


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/5 14:23:00 [只看该作者]

可能是页面有js动态控制影响了,看上面返回的页面数据已经是勾选状态的了

<TD align=center><INPUT id=ctl00_C_gv_ctl02_cb CHECKED type=checkbox name=ctl00$C$gv$ctl02$cb> </TD>

至于这种页面分析控制的用法我这里无法提供支持,只能自己去分析了

 回到顶部
帅哥哟,离线,有人找我吗?
cxmxjwlmq
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:349 积分:4166 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2021/3/8 19:38:00 [只看该作者]

蓝老师:

我用以下代码,未找到网页表中的ID号ctl00_C_gv_ctl02_cb

 

Dim inputs = web1.Document.GetElementsByTagName("Input")

For Each Input As object In Inputs
     msgbox(input.id)

Next

 

 

是不是网页表中的单选框ID,要在TABLE id=ctl00_C_gv里用别的代码才能找到!

麻烦你给看看,谢谢!

网页分析

<DIV>

<TABLE id=ctl00_C_gv class=m_table style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=0>

<TBODY>

<TR>

<TH style="WIDTH: 20px" scope=col><SPAN title=全选/取消><INPUT onclick=ctl00$C$gv$ctl02$cb.checked=ctl00$C$gv$ctl01$ctl16.checked; id=ctl00_C_gv_ctl01_ctl16 type=checkbox name=ctl00$C$gv$ctl01$ctl16></SPAN></TH>

 

<TH scope=col>序号</TH>

<TH scope=col>采集零件</TH>

……..

 

<TD align=center><INPUT id=ctl00_C_gv_ctl02_cb  type=checkbox name=ctl00$C$gv$ctl02$cb> </TD>

<TABLE id=ctl00_C_gv_ctl02_GridView2 class=m_table style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=0>

<TBODY>

 

谢谢费心!
[此贴子已经被作者于2021/3/8 19:38:49编辑过]

 回到顶部
总数 11 1 2 下一页