搜索
查看: 1669|回复: 4

web.kit.form获取的元素部分方法缺失,求解。

[复制链接]

3

主题

9

帖子

51

积分

一级会员

Rank: 2

积分
51
发表于 2017-12-17 10:13:43 | 显示全部楼层 |阅读模式
请见代码,出问题的地方已经用注释标示出来,谢谢关注~!

  1. io.open();
  2. import win.ui;
  3. import web.kit.form;
  4. import winex.mouse;

  5. /*DSG{{*/
  6. var winform = win.form(text="aardio form";right=402;bottom=274;parent=...)
  7. winform.add()
  8. /*}}*/

  9. wb = web.kit.form(winform);
  10. wb.userAgent = "User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4033.400 QQBrowser/9.6.12624.400";
  11. wb.cookieEnabled = true;
  12. winform.show();

  13. login = function(){
  14.         win.setForeground(wb._form.hwnd);//置于前端
  15.         ::SendMessage(wb._form.hwnd,0x112/*_WM_SYSCOMMAND*/,topointer(0xF120/*_SC_RESTORE*/),topointer(0));//还原窗口
  16.         wb.go("https://plogin.m.jd.com/user/login.action?appid=100&kpkey=");
  17.         wb.wait();
  18.         win.delay(1000);
  19.         var uerEle = wb.querySelector("#username");
  20.         var passEle = wb.querySelector("#password");
  21.         var loginEle = wb.querySelector("#loginBtn");
  22.         if(uerEle and passEle and loginEle){
  23.                 uerEle.value = "user";
  24.                 win.delay(1000);
  25.                 passEle.value = "pass";
  26.                 win.delay(1000);
  27.                 loginEle.fireEvent("onchange");//提示无fireEvent方法
  28.                 loginEle.setAttribute("class","btn J_ping btn-active");
  29.                 win.delay(1000);
  30.                 loginEle.click();//提示无click方法
  31.         }
  32.        
  33.         wb.wait();
  34.         win.delay(3000);
  35. }

  36. login();


  37. win.loopMessage();
  38. return winform;
复制代码
回复

使用道具 举报

2

主题

39

帖子

328

积分

二级会员

Rank: 3Rank: 3

积分
328
发表于 2017-12-17 10:57:20 | 显示全部楼层
!ele.fireEvent("onclick") = 自动触发element元素节点的事件脚本\n该事件仅IE内核控件可以使用
回复

使用道具 举报

3

主题

9

帖子

51

积分

一级会员

Rank: 2

积分
51
 楼主| 发表于 2017-12-17 11:07:28 | 显示全部楼层
Danboy 发表于 2017-12-17 10:57
!ele.fireEvent("onclick") = 自动触发element元素节点的事件脚本\n该事件仅IE内核控件可以使用

谢谢。请问,.click方法也没有么?还有什么方法可以触发click方法?
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2017-12-17 15:44:09 | 显示全部楼层
注意先看库函数文档,wb.click(loginEle)

DOM的属性太多,不同浏览器内核不同,没法都写到智能提示里,也没有意义,
这些JS编程方面的问题,直接网上找JS的教程看,wb.click也是直接调用JS的函数实现。
回复

使用道具 举报

3

主题

9

帖子

51

积分

一级会员

Rank: 2

积分
51
 楼主| 发表于 2017-12-18 12:18:28 | 显示全部楼层
Jacen.He 发表于 2017-12-17 15:44
注意先看库函数文档,wb.click(loginEle)

DOM的属性太多,不同浏览器内核不同,没法都写到智能提示里, ...

找到库源码了,原来要用dispatchEvent方法,有劳Jacen解答!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-17 15:00 , Processed in 0.062500 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表