| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2559 人关注过本帖, 3 人收藏
标题:请高手帮忙解决VFP 使用webbrower 自动填表并提交的问题
只看楼主 加入收藏
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
搞那么复杂干啥啊,无非就是一个网页的填充

thisform.wb.Navigate("http://game.)
INKEY(2)

thisform.wb.Document.getElementsByTagName("input").item(0).value="200"
图片附件: 游客没有浏览图片的权限,请 登录注册

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2021-08-24 10:43
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
以下是引用yangmz在2021-8-24 09:34:02的发言:

真搞不懂下面这句为第一个表单的第一个元素赋值为200

thiform.web1.document.getElementsByTagName("form").[0].item(0).setAttribute('value',200)

我在该语句前 SUSPEND 调试器跳出,我在监视窗口中运行这句,没有问题,正确运行,值为200。但是,我取消 SUSPEND 后运行,却提示未知名的错误,点击“挂起”,在调试器的监视窗口中运行该句,又变正确了。

我感觉头晕了,这是怎么回事啊?

你要先学会跟踪网页,才能找到其真正的控件ID或者名称。

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2021-08-24 10:44
yangmz
Rank: 2
等 级:论坛游民
帖 子:95
专家分:20
注 册:2013-4-2
收藏
得分:0 
fown,你提供的这个代码:
INKEY(2)
thisform.wb.Document.getElementsByTagName("input").item(0).value="200"
能用。

但不知道 INKEY(2) 这句在这里起到什么作用?查手册 INKEY(2) 意思是等待2秒钟键盘输入。

删除 INKEY(2) 这句后,就提示 item 不是对象,出错,不能正确运行。
2021-08-24 12:30
yangmz
Rank: 2
等 级:论坛游民
帖 子:95
专家分:20
注 册:2013-4-2
收藏
得分:0 
我猜想应该是该页面还没有完全加载,是dom不能正常运行的原因。
2021-08-24 16:52
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
以下是引用fown在2021-8-24 10:43:19的发言:

搞那么复杂干啥啊,无非就是一个网页的填充

从楼顶贴看,数据填充输入没问题,主要问题是提交失败。
2021-08-24 17:00
yangmz
Rank: 2
等 级:论坛游民
帖 子:95
专家分:20
注 册:2013-4-2
收藏
得分:0 
估计是网页加载的问题,使用 inkey 就解决了访问对象的问题。现在还是提交的问题没有解决

thisform.web1.Document.getElementsByTagName("input").item(1).Click()     *使用按钮的 click 事件
thisform.web1.Document.getElementsByTagName("form").[0].submit           *使用表单的 submit 方法
   或thisform.web1.Document.getElementsByTagName("form").item(0).submit
thisform.web1.Document.forms(0).submit()                                 *使用表单的 submit 方法

以上三个语句理论上都能提交按钮,不知道为什么不能提交成功?

如果真不行,只能用XMLHTTP实现了

[此贴子已经被作者于2021-8-24 18:47编辑过]

2021-08-24 18:43
yangmz
Rank: 2
等 级:论坛游民
帖 子:95
专家分:20
注 册:2013-4-2
收藏
得分:0 
最后,终于发现提交按钮不成功的问题所在,应该是 form 的 action 地址不完整,所以可以针对这个问题进行处理了。
感谢各位vfper。
VFP不过时,过时的是人啊!
2021-08-24 23:50
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
以下是引用yangmz在2021-8-24 18:43:24的发言:

估计是网页加载的问题,使用 inkey 就解决了访问对象的问题。现在还是提交的问题没有解决

thisform.web1.Document.getElementsByTagName("input").item(1).Click()     *使用按钮的 click 事件
thisform.web1.Document.getElementsByTagName("form").[0].submit           *使用表单的 submit 方法
   或thisform.web1.Document.getElementsByTagName("form").item(0).submit
thisform.web1.Document.forms(0).submit()                                 *使用表单的 submit 方法

以上三个语句理论上都能提交按钮,不知道为什么不能提交成功?

如果真不行,只能用XMLHTTP实现了




眼睛做手术了,修养中,不能用电脑。要网页填充,首先要知道控件的根本。
它是input,调用他的事件,也要它有才行。


1.onfocus  当input 获取到焦点时触发

2.onblur  当input失去焦点时触发,注意:这个事件触发的前提是已经获取了焦点再失去焦点的时候才会触发该事件,用于判断标签为空。

3.onchange 当input失去焦点并且它的value值发生变化时触发,个人感觉可以用于注册时的确认密码。

4.onkeydown 按下按键时的事件触发,

5.onkeyup 当按键抬起的时候触发的事件,在该事件触发之前一定触发了onkeydown事件--相当于一个按键,两个事件,没怎么用过

6.onclick  主要是用于 input type=button,input作为一个按钮使用时的鼠标点击事件

7.onselect  当input里的内容文本被选中后执行,只要选择了就会触发,不是全部选中

8.oninput  当input的value值发生变化时就会触发,(与onchange的区别是不用等到失去焦点就可以触发了)

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2021-08-25 07:51
yangmz
Rank: 2
等 级:论坛游民
帖 子:95
专家分:20
注 册:2013-4-2
收藏
得分:0 
收藏中
2021-08-25 20:01
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1744
专家分:3333
注 册:2012-2-29
收藏
得分:0 
学习啦,谢谢!
2021-08-26 05:51
快速回复:请高手帮忙解决VFP 使用webbrower 自动填表并提交的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019338 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved