PAMIE 是Python下面的用于IE的自动化模块,支持python2和python3

Python3的下载地址: PAM3.0.zip

PAMIE是Python Automated Module for I.E. 的缩写。

 

简单的例子:

# To use Pamie you must first create a new script or text file that you can saveas mytest.py. 
# This will import the cPAMIE class file so you can use it's methods 
from cPAMIE import PAMIE 
# create a new instance of the PAMIE object 
ie = PAMIE( ) 
# Lets navigate to google - this methods takes a string as the URL 
ie.Navigate("'www.google.com" ) 
ie.textBoxSet("q", "python" ) #control name, value 
# Now Submit the form. 
ie.buttonClick("'btnG" ) 

但是我们实际使用中,实际上会碰到许多的控件。如,input ,radio ,checkbox.

下面针对不同控件给出函数列表, 大家看名字大概就应该明白是干什么的. 权当手册使用吧,呵呵 :


状态控制

实际应用中,需要考虑IE的状态,比如访问一个网页,随即进行操作,在网页未下载完成的情况下,容易出错

PAMIE 则考虑到下面的情况     

  1. _wait()  : 等待整个页面下载完成
  2. _frameWait() :  等待一个frame下载完成
  3. _docGetReadyState:  获取文档对象的状态

 

TextArea

  1. getTextArea (name):  获取一个textarea,可能使用 id,name 或者 index
  2. getTextAreaValue(name, attribute):  获取一个textarea的属性值
  3. getTextAreasValue() 获取所有textarea
  4. setTextArea(name): 给textarea赋值
  5. textAreaExists(name): 查看指定名称的textarea 是否存在

 

Input

  1. getTextBox(name):
  2. getTextBoxValue(name, attribute):
  3. getTextBoxes():
  4. getTextBoxesValue()
  5. setTextBox( name, value):
  6. getInputElements():

 

Button

  1. buttonExists(self, name):  检查一个button是否存在
  2. clickButton(self, name):  点击一个按钮, name 可以是 name,id,index甚至是value属性的值
  3. clickButtonImage(self, name):  同上,点击一个图片按钮

 

Radio

  1. getRadioButton(name):
  2. def getRadioButtonSelected(name):
  3. getRadioButtonValues(name):
  4. getRadioButtons():

 

CheckBox

  1. checkBoxExists(self, name): 检查一个单选框是否存在

 

ListBox

  1. getListBox(name):
  2. getListBoxItemCount(name):
  3. getListBoxOptions(name):
  4. getListBoxSelected(name):
  5. getListBoxValue(name, attribute):
  6. listBoxUnSelect(name, value):
  7. selectListBox(name, value):

 

Image

  1. getImage( name):
  2. getImageValue(name, attribute):
  3. getImages():
  4. getImagesValue( attribute):
  5. imageExists(name):

 

form

  1. formExists( name):
  2. getForm( name=None):
  3. getFormValue( name, attribute):
  4. getFormVisibleControlNames( name=None):
  5. getForms():
  6. getFormsValue( attribute):

 

a

  1. clickHiddenLink( name):
  2. getLink( name):
  3. getLinkValue( name, attribute):
  4. getLinks( filter=None):

 

table

  1. getTable( name):
  2. getTableData( name):
  3. getTableRowIndex( name, row):
  4. getTableText(tableName,rownum,cellnum, frameName=None):
  5. getTables( filter=None):
  6. tableCellExists( tableName, cellText):
  7. tableExists( name):
  8. tableRowExists( name, row):

 

div

  1. divExists( name):
  2. getDiv( name):
  3. getDivValue( name, attribute):
  4. getDivs():
  5. getDivsValue( attribute):

 

通用 Element

  1. clickElement( element):  点击一个节点。
  2. clickHiddenElement( element):
  3. findElement( tag, attributes, val, elementList=None):
  4. findElementByIndex( tag, indexNum, filter=None, elementList=None):
  5. findText( text):
  6. fireElementEvent( tag, controlName, eventName):
  7. textFinder(text):
  8. getElementChildren( element, all=True):
  9. getElementParent( element):
  10. getElementValue( element, attribute):
  11. getElementsList( tag, filter=None, elementList=None):

 

操作类函数:

用于控制IE的动作

  1. navigate( url):
  2. changeWindow( wintext):  转而控制另外一个窗体对象
  3. pause( string = "Click to Continue test"):
  4. goBack(self):
  5. findWindow( title, indexNum=1):
  6. closeWindow( title=None):
  7. refresh(self):
  8. resize( iWidth, iHeight):
  9. quit(self):

 

信息资源类:

获取当前IE的属性

  1. getIE(self):
  2. getPageText(self):
  3. locationURL(self):
  4. outerHTML(self):
  5. randomString( length):

 

 

Python模拟浏览器操作

两种思绪三种要领:

用pamie。建议不要使用,因为pamie为小我私人开发,里面的bug比力多,并且是直接使用win32com体式格局的,如果ie不警惕修改了,后果很严重。另外,pamie3使用的是python3,这个在python世界中撑持的不太好。

用selenium rc。这个东东大好,如果用这个东东完成网页自动实验正确,撑持多种浏览器,并且是公司开发的,上手难易程度类似pamie。只不过需要打开浏览器,这个就看大家的需要了。

用mechanize和beautiful soup。这个东东是在urllib2的根蒂根基上向上开发的,是个好东西。ibm先容使用mechanize的文章

python中访问网页实际上存在两种思绪,一种是利用现成的浏览器访问网页,这类体式格局的长处是可以利用浏览器措置惩罚庞大的javascript的内部实质意义,制止本身受苦受累。时常看到有人问怎样点击网页等等的需求,那么利用浏览器来使成为事实就是1个好思绪了。1,2均是这类思绪,不过使用规模是网站自动实验。当然本身写1个访问某某网页的东东也正确。

另外的思绪就是利用urllib2来访问网页了。说实在话,选择python的理由有两个:google在用,另外它访问网页和正则表达式的要领让我很喜欢。最后的理由就是她是1个高出产力语言,用c写上200行代码有可能用python写5行不到。

使用python的另外的好处是资源相相比较力多,要解决1个问题,耐心的查找一下,总能发明好的资源。