求大神啊,关于webbrowser给文本框赋值的问题

cz49009 2015-10-09 02:30:00
需要加载的网站是http://www.shenzhenair.com/uiue/。

我想要做的是模拟人员输入出数据,查询出机票的信息。
我用webBrowser1.Document.All["orgCity"]..SetAttribute,还有webBrowser1.Document.GetElementById("").InnerText两种都试过,发现值是写进去,但是就出现了一瞬间,然后文本框就又变成请输入城市这几个字了。
求大神指教,怎么解决
...全文
349 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cz49009 2015-10-10
  • 打赏
  • 举报
回复
引用 12 楼 Roy_se7en 的回复:
1. 你给 textbox 赋值是在什么时候? 2. 你发现值是写进去了,是如何发现的?是在什么时候发现的?
这是从百度上找得,通过count的加减判断是否页面加载是否彻底完成 private void webBrowser1_completed(object sender, WebBrowserDocumentCompletedEventArgs e) { count = count - 1; if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && count == 0) { HtmlElement fromCity = webBrowser1.Document.GetElementById("fromCity"); fromCity.Focus(); fromCity.SetAttribute("value", "深圳"); } } 至于值有没有写进去,应该来说只是看的话,在页面上会看到深圳两个字出现了一下,然后就没有了
哋岼線 2015-10-10
  • 打赏
  • 举报
回复
引用 13 楼 cz49009 的回复:
[quote=引用 12 楼 Roy_se7en 的回复:] 1. 你给 textbox 赋值是在什么时候? 2. 你发现值是写进去了,是如何发现的?是在什么时候发现的?
这是从百度上找得,通过count的加减判断是否页面加载是否彻底完成 private void webBrowser1_completed(object sender, WebBrowserDocumentCompletedEventArgs e) { count = count - 1; if (webBrowser1.ReadyState == WebBrowserReadyState.Complete && count == 0) { HtmlElement fromCity = webBrowser1.Document.GetElementById("fromCity"); fromCity.Focus(); fromCity.SetAttribute("value", "深圳"); } } 至于值有没有写进去,应该来说只是看的话,在页面上会看到深圳两个字出现了一下,然后就没有了[/quote] 我简单测试了下你这个问题。webBrowser1状态为Completed时也只是加载Document框架。至于异步ajax,或者js 可能并没有完 成, 因为没有源码,有源码找起来也会简单,所以建议楼主从 赋值“请输入城市”(textbox最早value是'输入城市名称')的方式和时间去找问题...
cz49009 2015-10-10
  • 打赏
  • 举报
回复
引用 14 楼 ajianchina 的回复:
你现在可能走的是一条完全错误的道路,不要总盯着GetElementById来取得元素来赋值,你要研究一下这个网站的js工作流程,他最终可能不是通过取域值来提交的,我看像是通过文本框鼠标事件来触发js函数,接着让你来选择城市,这步下去可能是将选择结果存入js变量,最后将变量交给域来提交,那个文本框填什么可能根本没鸟用,只是让使用者看看城市名字而已,因为航班往来城市是固定的,不是说你想填什么就填什么,你自己想想是不是呢?你填个天堂或地狱,你说会是什么结果? 如果你研究了他的js流程发现确实是这样的,那么你该做的是通过向webbrowser注入一段用于赋值的js代码并执行,然后就可直接提交,文本框都可以不用管。
多谢,我今天早上一来就没有跟昨天一样纠结赋值的事情了,在分析页面的JS
ajianchina 2015-10-10
  • 打赏
  • 举报
回复
你现在可能走的是一条完全错误的道路,不要总盯着GetElementById来取得元素来赋值,你要研究一下这个网站的js工作流程,他最终可能不是通过取域值来提交的,我看像是通过文本框鼠标事件来触发js函数,接着让你来选择城市,这步下去可能是将选择结果存入js变量,最后将变量交给域来提交,那个文本框填什么可能根本没鸟用,只是让使用者看看城市名字而已,因为航班往来城市是固定的,不是说你想填什么就填什么,你自己想想是不是呢?你填个天堂或地狱,你说会是什么结果? 如果你研究了他的js流程发现确实是这样的,那么你该做的是通过向webbrowser注入一段用于赋值的js代码并执行,然后就可直接提交,文本框都可以不用管。
哋岼線 2015-10-09
  • 打赏
  • 举报
回复
1. 你给 textbox 赋值是在什么时候? 2. 你发现值是写进去了,是如何发现的?是在什么时候发现的?
  • 打赏
  • 举报
回复
加QQ吧,那样快一下,67820960 另外分给我吧,我没分了,问不了问题
  • 打赏
  • 举报
回复
我在浏览器挨了F12,没这个东西的源码,不过你可以找你们公司会网页的人找找元素,有元素就能控制了 我正在也在写这个东西,一起交流一下吧
cz49009 2015-10-09
  • 打赏
  • 举报
回复
哎,也是无奈,经理让我继续找它请求的地址和参数,一点一点看,看了好半天,愣是没找到。数据采集这东西也是最近才开始学习的,经理一句让我自己研究,就只能自己网上找资料摸索着学,所以有些东西还是只是一知半解的。
cz49009 2015-10-09
  • 打赏
  • 举报
回复
引用 7 楼 luguangbiao 的回复:
我向问问,你在输入文字到点击确定,中间是怎么做延迟的
目前我只做输入值的,点确定按钮的还没做,现在连输入值都无法做到。。。。
  • 打赏
  • 举报
回复
我向问问,你在输入文字到点击确定,中间是怎么做延迟的
ajianchina 2015-10-09
  • 打赏
  • 举报
回复
你尝试触发一下选择城市的那个下拉js事件,哪怕你不选,先找到这个js事件,触发一下后在赋值。
feiyun0112 2015-10-09
  • 打赏
  • 举报
回复
webBrowser1.Document.GetElementById("orgCity").Value ="北京"
cz49009 2015-10-09
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
是不是你没等js执行完毕就赋值了?
我百度了好多等页面完全加载完的方法,结果都是一样。其实主要是想采集到这个网站的机票价格信息,但是没有找到请求的url和参数是什么。所以才出此下策,模拟人员输入查询的
  • 打赏
  • 举报
回复
是不是你没等js执行完毕就赋值了?
cz49009 2015-10-09
  • 打赏
  • 举报
回复
都过了半个小时了。。。。。。。。。
自己看下面的目录,货真价实,超级实用,不用多介绍 分两个文件,分别下载后用WinRAR合并即可 (第一个包的地址:http://download.csdn.net/source/349057) -=目录=- ADODB_ADO数据库操作支持库(1.0#1版)云外归鸟 API_cn中文API支持库(1.0#3版)[liigo] API_cn中文API支持库(预览版)[liigo] aslib_Shell支持库(1.1#0版)[taowen] cool酷支持库-高级滑块条2.0 DialogEx通用对话框扩展(1.2#168版)[薛飞] DirectX支持库(1.1#3版)神挂工作室 EasyAPI支持库(1.0#0版)[usufu] eDirTree目录树支持库1.2云外归鸟 eDirTree目录树支持库1.3#5云外归鸟 eHook全局钩子支持库(1.2#3版)云外归鸟 eISAPI因特网服务支持库(1.2#1版)云外归鸟 eLIB++(1.1#1版)海洋 eLIB++(1.2#0版)海洋 eLIB++支持库Delphi源代码[海洋] eMsAgent精灵助手支持库(1.4#3版)云外归鸟 encrypt资料加密库(1.0#1版)[xwxyh] ePY取汉字带音调拼音支持库(1.0#0版)云外归鸟 ePY取汉字带音调拼音支持库(2.0#1版)云外归鸟 eSocket网络套接字通信支持库(1.0#1版)云外归鸟 GIF89a_GIF动画全操作支持库(1.2版)云外归鸟 HYExtLib海洋扩展支持库(1.2#1版)海洋 HYExtLib海洋扩展支持库(1.3)海洋 HYExtLib海洋扩展支持库(1.3.3版)海洋 HYExtLib海洋扩展支持库(1.0#1版)海洋 Krnlnex辅助调试支持库(1.51)[liigo] liigo_elib(1.0#10版)liigo LoverLib多命令支持库(1.0#0版)[耿磊] LXSupp流星支持库+银戒指提示支持库[流星+银戒指] MCI多媒体指令支持库(1.2#0版)[super杨] MD5加密支持库[mzwangping] MDI多窗口界面支持库(2.1#3)王军 MSGBOX信息框支持库(1.0#8版)[hightall] mylib内存信息提取支持库(1.0#1版)[usufu] mytools超级工具箱支持库(1.1#6版)[寻梦+海洋] mytools超级工具箱支持库(1.1)[寻梦+海洋] NSService系统辅助支持库1.3正式版[6789709] OLEDispatch_COM对象操作支持库(1.1#0版)云外归鸟 RichTextBox丰富文本框支持库(1.2#3共享版)云外归鸟 Taolibv★诺亚鸿飞增强库★(1.1#0版)吴江涛 Tooltiplib提示工具支持库(1.1#0版)银戒指 WaveEffect水波特效支持库(1.0版)[OpenGL] WebBrowser2_WEB浏览器支持库(1.0#1版)云外归鸟 WebBrowser网页编辑浏览框支持库(1.2#10版) WebBrowser网页浏览框(1.0#8版)云外归鸟 win透明窗口特效支持库1.0[流星] xWindow异形支持库(1.0#1版)[liigo] xwx无限扩展库(1.0#1版)[xwxyh] 超酷窗体OCX 条形码OCX 一些未归类的支持库

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧