python webkit 模拟网页点击事件

10710阅读 0评论2014-06-04 mymusise
分类:大数据

在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. <a id='kwl' href=''>baidu.com</a>
如果要对上面的元素进行点击的话,可以这么做:

点击(此处)折叠或打开

  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,模拟完成。








上一篇:selenium 无法找到element
下一篇:python \xff 等直接输出