Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59814
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 202
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-26 15:34
个人简介

爱技术的大学狗

文章分类

全部博文(8)

文章存档

2014年(8)

我的朋友

分类: 大数据

2014-06-04 22:41:44

在QT官网上有个webkit模拟网页点击事件的例子:

点击(此处)折叠或打开

  1. QWebElement document = frame->documentElement();
  2.      /* Assume that the document has the following structure:

  3.          <form name="myform" action="submit_form.asp" method="get">
  4.              <input type="text" name="myfield">
  5.              <input type="submit" value="Submit">
  6.          </form>

  7.       */

  8. QWebElement button = document.findFirst("input[type=submit]");
  9. button.evaluateJavaScript("this.click()");
这个例子就是在:
  1. <form name="myform" action="submit_form.asp" method="get">
  2.              <input type="text" name="myfield">
  3.              <input type="submit" value="Submit">
  4.          </form>

这个网页里头,找出一个type=submit的input元素,然后调用js里的 this.click()来模拟鼠标点击


但是这是方法是有局限的,click()事件只能对元素进行操作,但是对于

元素等就不行了。
下面介绍一个实现对
 

等元素的模拟点击:

如果要对上面的元素进行点击的话,可以这么做:

点击(此处)折叠或打开

  1. aa=self.mainFrame().findAllElements("a[id=kwl]")
  2. a=aa.at(0)
  3. a.evaluateJavaScript("this.focus()")
代码是用python写的,调用qt模块,用的是qt的库。语法与c++有点不同,但是方法是一样的。
上面代码是先让焦点放在想要的
元素上。然后模拟 ENTER 按键:
python下调用的是virtkey模块:

点击(此处)折叠或打开

  1. v = virtkey.virtkey()
  2. v.press_keysym(65421)
  3. v.release_keysym(65421)
然后ok,模拟完成。








阅读(10511) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~