python完成自动提交form的功能

python完成自动提交form的功能

记得刚毕业的那会儿,参加工作的第一家公司,每天下班都要通过内部系统(web)打卡的,当时觉得很麻烦所以就做了一个系统自动完成,但是使用c++调用IE访问打卡系统的网页,然后通过,鼠标移动到指定的坐标,然后在发送鼠标点击动作。这种方式很不灵活,因为一定不能让被调用IE失去焦点。也就是这个过程中电脑最好不要被动到。

 

今天发现了一个python的库,可以很轻松的完成这个功能,并且还能你解决我上面提到的这个问题。这个库的名字就是selenium,这个英文单词的意思是硒,是个化学元素的名字。

官方网站:

http://www.seleniumhq.org/

selenium支持的语言不只有python,还有

  • java
  • c#
  • Ruby
  • python
  • Javascript(Node)

可以在官方网站下载最新的版本,也可以使用pip提供的版本,如果使用pip提供的版本,那么先通过pip安装它

$ sudo pip install selenium

 

关于如何使用selenium,请参看

http://selenium-python.readthedocs.io/

下面是这个网站给出的一个简单的例子

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()

下面说说怎么提交表单。可以从上面的例子中看到,selenium可以让你定位页面中的元素,那么要提交表单,那么就要定位表单中的input,selenium提供了一些列的find方法,可以通过 id, name, tag, link text, 等等。找到后,填写内容,可以使用send_keys( xxx ), 例如我们要填充的元素对象(通过find_by_xxxx)是ele,要填充的内容xxx,那么

就是

ele.send_keys( xxx )

填充所有form的内容,接下来就是点击submit button提交,所以先要找到这个对象,方法也是 find_by_xxx,然后调用这个元素的 click()方法就可以了。

查找元素的过程中,会比较麻烦,因为有些元素是嵌套在其他的frame或者iframe中,那么就需要switch_to_frame到对应的frame中。

 

i

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理i.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *