-
selenium python 导入的包 内容:
2014-03-13 10:50:13
#-*- coding:utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import Selectfrom selenium.common.exceptions import NoSuchElementExceptionimport unittest, time, re#鼠标事件
from selenium.webdriver.common.action_chains import ActionChains
-
os.path 模块 转载
2014-03-13 10:02:21
os.path.abspath(path)
返回path规范化的绝对路径。
>>> os.path.abspath('test.csv')
'C:\\Python25\\test.csv'
>>> os.path.abspath('c:\\test.csv')
'c:\\test.csv'
>>> os.path.abspath('../csv\\test.csv')
'C:\\csv\\test.csv'
os.path.split(path)
将path分割成目录和文件名二元组返回。
>>> os.path.split('c:\\csv\\test.csv')
('c:\\csv', 'test.csv')
>>> os.path.split('c:\\csv\\')
('c:\\csv', '')
os.path.dirname(path)
返回path的目录。其实就是os.path.split(path)的第一个元素。
>>> os.path.dirname('c:\\csv\test.csv')
'c:\\'
>>> os.path.dirname('c:\\csv')
'c:\\'
os.path.basename(path)
返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。
>>> os.path.basename('c:\\test.csv')
'test.csv'
>>> os.path.basename('c:\\csv')
'csv' (这里csv被当作文件名处理了)
>>> os.path.basename('c:\\csv\\')
''
os.path.commonprefix(list)
返回list中,所有path共有的最长的路径。
如:
>>> os.path.commonprefix(['/home/td','/home/td/ff','/home/td/fff'])
'/home/td'
os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
>>> os.path.exists('c:\\')
True
>>> os.path.exists('c:\\csv\\test.csv')
False
os.path.isabs(path)
如果path是绝对路径,返回True。
os.path.isfile(path)
如果path是一个存在的文件,返回True。否则返回False。
>>> os.path.isfile('c:\\boot.ini')
True
>>> os.path.isfile('c:\\csv\\test.csv')
False
>>> os.path.isfile('c:\\csv\\')
False
os.path.isdir(path)
如果path是一个存在的目录,则返回True。否则返回False。
>>> os.path.isdir('c:\\')
True
>>> os.path.isdir('c:\\csv\\')
False
>>> os.path.isdir('c:\\windows\\test.csv')
False
os.path.join(path1[, path2[, ...]])
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。
>>> os.path.join('c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c')
'/home/aa/bb/c'
os.path.normcase(path)
在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。
>>> os.path.normcase('c:/windows\\system32\\')
'c:\\windows\\system32\\'
os.path.normpath(path)
规范化路径。
>>> os.path.normpath('c://windows\\System32\\../Temp/')
'c:\\windows\\Temp'
os.path.splitdrive(path)
>>> os.path.splitdrive('c:\\windows')
('c:', '\\windows')
os.path.splitext(path)
>>> os.path.splitext('c:\\csv\\test.csv')
('c:\\csv\\test', '.csv')
os.path.getsize(path)
返回path的文件的大小(字节)。
>>> os.path.getsize('c:\\boot.ini')
299L -
selenium webdriver python _test suite
2014-02-26 10:10:27
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(类名("类中的方法名1"))
suite.addTest(类名("类中的方法名2"))
。。。。。
unittest.TextTestRunner().run(suite)
可以加N个方法。。。 -
学习链接备份
2014-02-25 21:34:47
https://github.com/easonhan007/webdriver_guide 乙醇的github
http://selenium.googlecode.com/git/docs/api/py/api.html#webdriver-common webdriver python api
http://blog.163.com/yang_jianli/blog/static/161990006201281831228222/ selenium API
http://www.cnblogs.com/fnng/p/3183777.html 学习应用网站
http://blog.163.com/ly676830315@126/blog/static/10173372220131022113452843/ 弹出新的窗口的识别
http://blog.csdn.net/nbkhic/article/details/6897070
http://www.51testing.com/html/34/n-848334-2.html 应用内容总结为:def test_baidu_yinyue(self):driver = self.driverdriver.get(self.base_url + " ")time.sleep(3)driver.find_element_by_link_text("音 乐").click()if driver.current_url == 'http://music.baidu.com/':print '不错'print driver.titletime.sleep(3)driver.find_element_by_link_text("新闻").click()print driver.current_urldriver.maximize_window()time.sleep(2)driver.back()print driver.current_urltime.sleep(2)driver.forward()time.sleep(2)print driver.current_url注:#-*- coding:utf-8 -*- 如果不认识link 则需要加上这个。==================================http://www.boobooke.com/bbs/viewthread.php?tid=41825&page=1 selenium 学习网站内容===================== -
selenium 定位元素方法
2014-02-24 22:38:01
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re
import time
import osclass Checkbox(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(30)
'''
self.base_url = "F:\fanxr\Selenium\test\train\test.html"
'''
self.verificationErrors = []
self.accept_next_alert = True
def test_baidu(self):
driver = self.driver
file_path = 'file://' + os.path.abspath('checkbox.html')
driver.get(file_path)
inputs = driver.find_elements_by_tag_name('input')
'''
print len(inputs)#打印input的个数
for input in inputs:
if input.get_attribute('type') == 'checkbox':
input.click()
time.sleep(2)
inputs=driver.find_elements_by_tag_name('input')
for input in inputs:
if input.get_attribute('type') == 'radio':
input.click()
time.sleep(2)
for input in inputs:
if input.get_attribute('type') == 'checkbox':
input.click()#选择复选框以后,在click(就是取消选择。)
time.sleep(5)
'''
'''
checkboxs=driver.find_elements_by_css_selector('input[type=checkbox]')
for checkbox in checkboxs:
checkbox.click()
time.sleep(5)
'''
# 选择最后一个checkbox并click pop() 方法用于删除并返回数组的最后一个元素。
driver.find_elements_by_css_selector('input[type=checkbox]').pop().click()
time.sleep(2)==============================================================#通过CSS方式定位 browser.find_element_by_css_selector("#kw").send_keys("selenium") #通过xphan方式定位browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")<a href="http://news.baidu.com" name="tj_news">新 闻</a>
driver.find_element_by_css_selector("a[name=\"tj_news\"]").click()
<a onclick="queryTab(this);" mon="col=502&pn=0" title="web" href="http://www.baidu.com/">网页</a>
driver.find_element_by_css_selector("a[title=\"web\"]").click()
<a class="RecycleBin xz" href="javascript.:void(0);">
driver.find_element_by_css_selector("a.RecycleBin").click()
xpath:idRelative (id相关性)
driver.find_element_by_xpath("//div[@id='fm']/form/span/input").send_keys("selenium") #在/form/span/input 层级标签下有个div标签的id=fm的元素
driver.find_element_by_xpath("//tr[@id='check']/td[2]").click() # id为'check' 的tr ,定闪他里面的第2个td
xpath:position (位置) driver.find_element_by_xpath("//input").send_keys("selenium") driver.find_element_by_xpath("//tr[7]/td[2]").click() #第7个tr 里面的第2个td
xpath: href (水平参考) driver.find_element_by_xpath("//a[contains(text(),'网页')]").click()xpath:link
driver.find_element_by_xpath("//a[@href='http://www.baidu.com/']").click() -
QTP 问题:
2014-02-21 15:53:41
错误对话框
Microsoft Visual C++ Runtime Library
Runtime Error!
Program: D:/Program Files/HP/QuickTest Professional/bin/QTPro.exe
R6025
-pure virtual function call解决方案(部分人按照这种方法能奏效):
1)打开QTP的安装目录(C:/QuickTest Professional/bin,我装在C盘的),
2)找到“inst_key.exe”文件,打开,
3)将C:/Program Files/Common Files/Mercury Interactive/License Manager/LSERVRC中#之前的字符串copy输入即可
就是这样解决问题的。
===================================
-
python 学习中的问题:
2014-01-20 14:04:15
乱码原因:
因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了。
解决方法:
在控制台打印的地方用一个转码就ok了,打印的时候这么写:
print myname.decode('UTF-8').encode('GBK')比较通用的方法应该是:
import sys
type = sys.getfilesystemencoding()
print myname.decode('UTF-8').encode(type)---------------------------------------# coding=utf-8#!usr/bin/python----------------------------------因为不小心把编码修改为CP936了 所以用coding=utf-8的时候打印乱码, 所以现在只需要写下边的就可以了# coding=cp936#!usr/bin/python==========================================================在执行python脚本时报如下错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-78: ordinal not in range(128)
解决方法:
在python脚本中开头处加上以下两句代码即可:
- reload(sys)
- sys.setdefaultencoding('utf8')
-
生成报告中遇到的问题
2014-01-20 11:29:14
http://tungwaiyip.info/software/HTMLTestRunner.html 下载HTMLTestRunner并当到pyhone按照目录的Lib 中
脚本内容为:# coding=utf-8#!usr/bin/python# 上边的这两个是必须要有的。 要不然的话运行有错误提示from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import Selectfrom selenium.common.exceptions import NoSuchElementExceptionimport unittest, time, reimport HTMLTestRunner # 需要导入的内容。class Login(unittest.TestCase):def setUp(self):self.driver = webdriver.Firefox()self.driver.implicitly_wait(30)self.base_url = "http://mail.163.com/"self.verificationErrors = []self.accept_next_alert = Truedef test_login(self):driver = self.driverdriver.get(self.base_url + "/")driver.find_element_by_id("idInput").clear()driver.find_element_by_id("idInput").send_keys("XXXXXX2002")driver.find_element_by_id("pwdInput").clear()driver.find_element_by_id("pwdInput").send_keys("XXXXXX")driver.find_element_by_id("loginBtn").click()for i in range(60):try:if u"退出" == driver.find_element_by_link_text(u"退出").text: breakexcept: passtime.sleep(1)else: self.fail("time out")driver.find_element_by_link_text(u"退出").click()def is_element_present(self, how, what):try: self.driver.find_element(by=how, value=what)except NoSuchElementException, e: return Falsereturn Truedef is_alert_present(self):try: self.driver.switch_to_alert()except NoAlertPresentException, e: return Falsereturn Truedef close_alert_and_get_its_text(self):try:alert = self.driver.switch_to_alert()alert_text = alert.textif self.accept_next_alert:alert.accept()else:alert.dismiss()return alert_textfinally: self.accept_next_alert = Truedef tearDown(self):self.driver.quit()self.assertEqual([], self.verificationErrors)if __name__ == "__main__":unittest.main()# unittest.main()这个是必须要有的 要不testreport 中是没有内容的。testsuite=unittest.TestSuite()testsuite.addTest(Login("test_login"))filename="e:\\result.html" # report所在的位置。fp=file(filename,'wb')runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='Result',description='Test_Report')runner.run(testsuite) -
RobotFramework+Selenium2环境搭建与入门实例(转载)
2014-01-16 09:26:45
一、安装包
1、Python(推荐使用ActivePython,这个版本PATH已经配好了,也安了一些像pip这样的包)
ActivePython-2.7.2.5-win32-x86.msi
2、WxPython(注意要用2.8的版本,我用2.9的发现ride无法打开)
wxPython2.8-win32-unicode-2.8.12.1-py27.exe
3、robotframework(我使用的是2.8)
robotframework-2.8.1.tar.gz
4、安装RIDE(推荐用下面的exe安装包,它可以在桌面创建快捷方式)
robotframework-ride-1.1.win32.exe
http://blog.csdn.net/xc5683/article/details/10017915
:
二、安装
1、首先安装Python,这个就不用多说了,下一步下一步就好了
2、安装wxPython也是,一路下一步就好了,注意一下,最好要以管理员身份运行
3、安装rf,解压rf到本地目录(D:\Python27),然后python setup.py install就好了
4、安装RIDE,也是以管理员身份运行,创建桌面快捷方式
5、安装Selenium2Library,以管理员身份运行cmd scripts目录下执行,然后easy_install robotframework-selenium2library就可以了
查看selenium2library是否安装成功的方法:打开python,输入import Selenium2Library,如果出现命令提示符就 OK了,注意大小写,是Selenium2Library。
http://www.docin.com/p-390103717.html
如果按照文档运行的时候出问题: 请把E:\Python27\Scripts 加到path中 就可以运行了
robot framework按照说明:http://www.51testing.com/html/26/424226-845458.html-----------------
python+selenium2.0
1. 首先下载python: 地址为: http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
安装
2. 安装Python的SetupTools 地址为: http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe#md5=57e1e64f6b7c7f1d2eddfc9746bbaf20
3. 安装Python的包管理工具pip ,进入DOS下的路径为“D:\Program Files\Python27\Scripts
执行安装命令“easy_install pip”,等待安装完成
4. 在执行: easy_install -U setuptools 等待安装完成
5.
安装基于python的Selenium安装包, 执行命令“pip install selenium”,等待安装完成;参考网址: http://blog.sina.com.cn/s/blog_b5fe6b2701019w33.html
http://stackoverflow.com/questions/20905350/latest-pip-fails-with-requires-setuptools-0-8-for-dist-info
chromedriver 下载地址: http://code.google.com/p/chromedriver/downloads/detail?name=chromedriver_win32_2.0.zip&can=2&q=chromedriver
-
selenium 在IE 和chrome 中运行不了
2014-01-16 08:54:58
IE 需要查看 安全中的internet/本地internet/可信站点中/受信站点中的 “启用保护模式(要求重新启用internet Explorer)” 要不全勾选 要不全不选 就可以了chrome 如果脚本没有打开 就要查看chromedriver 的版本是不是正确 (怎么看还不知道 反正是python 2.7 的 然后下载一个chromedriver 2.7 的版本就好了)也是很奇葩。 -
selenium 学习过程:
2014-01-15 12:54:08
#-*- coding:utf-8 -*-
import time
from selenium import webdriver
browser=webdriver.Firefox()
# 要想支持IE和Chrome需要将IE和chrome的驱动exe程序放置在python安装的根目录下,
#(注:前面已经要求将pyhton安装根目录设置到环境变量path里)
# 才能启动相应的浏览器(下载加压将其中的EXE程序放置在python的根目录下)
# win 32bit版 [size=140%]IEDriverServer_Win32_2.25.3.zip
# win 64bit版[size=140%]IEDriverServer_x64_2.25.3.zip
# browser = webdriver.Ie()
# win版chromedriver_win_23.0.1240.0.zip
# browser = webdriver.Chrome() -
Python 学习日志
2014-01-07 17:31:41
读取某一个文件夹下的文件并写到一个不存在的文件中:import os
os.mkdir("D:/2") // 创建文件夹
f=open("D:/2/1.txt","w") 创建文件(存在就打开, 不存在就创建)
for filename in os.listdir("D:\Python27"): (读取文件夹下的文件名)
print filename
f.writelines(filename +"\n") //写入文件中。
f.close()=====================在一个文本文件中插入10个0到9 的随机数 并共插入十行并读取改文本文件中的内容并打印。import random
f= open("D:/2/1.txt","w")
for i in range( 0,10):
for i in range(0,10): f.write(str(random.randint(0,9)))
f.write('\n')
f.close()
a=open("D:/2/1.txt")
s=a.read()
print s======================================在指定的文件夹中生成N多个txt文件:def creatfiles(x):i = 0while i < x:bb = "fds"+str(i)+".txt"f = open("D:\\Python27\\test\\"+bb,"w")f.write("today is 2009-1-7\n")f.write("I am very happy!")f.close()i = i+1if __name__ == "__main__":m = int(input('creatfile_numbers: '))creatfiles(m)
-
使用allpairs自动设计组合测试用例
2013-07-03 13:53:44
1. 先在xls 中写好测试的条件,2. 然后从xls 复制并粘贴到写字板中并保存。3 然后使用allpairs.exe处理这个文件:
allpairs.exe test.txt > output.txt
4. 在output.txt里,PAIRING DETAILS下面的东西都是没有用的,可以直接删掉,删掉以后,结果如下:
-
工具
2013-06-03 11:16:51
bitnami-redmine-2.3.1-1-windows-installer.exeFreeMind-Windows-Installer-1.0.0_Beta_8-max.exebitnami-redmine-1.4.7-2-windows-installer.exeXMiand2002 画思维简图的。 -
Mysql 如何修改字段区分大小写
2013-01-29 10:18:59
# mysql –u root –p
Ø Show databases;
Ø User 数据库名称。
Ø Desc t_user
Ø ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME TPYE BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
-
test link 的实用
2012-12-27 13:45:47
http://www.cnitblog.com/201/archive/2010/04/19/65448.html -
SNTP 服务配置
2012-11-20 10:26:25
http://hi.baidu.com/chhmdn/item/2067b810574efef8dceecae5 -
SVN 的使用:
2012-11-08 15:37:13
http://wenku.baidu.com/view/443e0d76f242336c1eb95e1e.html -
软件生命周期:
2012-08-15 06:50:59
-
Win7 loadrunner 破解 转载
2012-03-22 16:49:23
LoadRunner11下载:51Testing软件测试网kGmA T
经本人亲自测试一下链接可以下载到LR1151Testing软件测试网8y B q!Erl
http://www.genilogix.com/downloads/loadrunner/loadrunner-11.iso
0toVLp&{E107253LoadRunner11破解:51Testing软件测试网4K&R km`+HF
破解方法和以前版本相同,我用的是LR8.0的破解文件,同样实用。就是将LR8.0中的以下两个文件替换到LR11安装目录的bin目录下:C:\Program Files\HP\LoadRunner\bin需要替换的两个文件名:lm70.dll mlr5lprg.dllLoadRunner11的license问题:提供一个超级license 最高支持6.5w个并发:AEACFSJI-YJKJKJJKEJIJD-BCLBR如果用的着的朋友请留言并将该贴顶起来,方便那些需要的朋友,如有转帖的朋友请注明出处,谢谢。http://bbs.51testing.com/viewthread.php?tid=84208 (deletelicense)
高级测试工程师
标题搜索
我的存档
数据统计
- 访问量: 61387
- 日志数: 77
- 文件数: 19
- 书签数: 1
- 建立时间: 2007-10-15
- 更新时间: 2014-03-13