用python做python自动化测试用例时,无法启动FireFox--geckodriver怎么办?

[转载]python&webdriver自动化测试实例
python webdriver自动化测试初步印象
以下示例演示启动firefox,浏览,搜索Cheese,等待搜索结果,然后打印出搜索结果页的标题
from selenium import webdriver
mon.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait #
available since 2.4.0
from selenium.webdriver.support import expected_conditions as
EC # available since 2.26.0
# Create a new instance of the Firefox driver
driver = webdriver.Firefox()
# go to the google home page
driver.get("")
# find the element that's name attribute is q (the google
search box)
inputElement = driver.find_element_by_name("q")
# type in the search
inputElement.send_keys("Cheese!")
# submit the form (although google automatically searches now
without submitting)
inputElement.submit()
# the page is ajaxy so the title is originally this:
print driver.title
# we have to wait for the page to refresh, the last thing that
seems to be updated is the title
WebDriverWait(driver,
10).until(EC.title_contains("cheese!"))
# You should see "cheese! - Google Search"
print driver.title
driver.quit()
python webdriver自动化测试通过控件xpath定位元素
有一段html代码如下:
现在通过xpath来查找到相应的input元素,代码demo如下:
from mon.by import By
#查找所有input元素方法一
inputs = driver.find_elements_by_xpath("//input")
#查找所有input元素方法二
inputs = driver.find_elements(By.XPATH, "//input")
#查找指定的input元素,比如查找name为other的input
driver.find_element_by_xpath("//input[@name='other']")
python webdriver自动化测试在window和frame之间切换
from selenium import webdriver
# 启动firefox初始化webdriver
driver = webdriver.Firefox()
1、切换到指定窗口名的窗口,
例如有一段html代码如下
driver.switch_to_window("windowName")
2、当然也可以通过句柄来切换,示例如下
for handle in driver.window_handles:
driver.switch_to_window(handle)
上述代码会遍历,一个个的切换。
3、通过frame名称切换到指定的frame
driver.switch_to_frame("frameName")
4、也可以通过frame的索引来切换
driver.switch_to_frame(0) #切换到第一个frame
python使用selenium rc和webdriver启动不同浏览器的方法
Selenium 1 -启动 Internet Explorer
from selenium import selenium
selenium = selenium("localhost", 4444, "*iexplore",
selenium.start()
Selenium 1 - 启动Firefox
from selenium import selenium
selenium = selenium("localhost", 4444, "*firefox",
selenium.start()
webdriver - 启动Firefox
from selenium import webdriver
driver = webdriver.Firefox()
webdriver - 启动Chrome
from selenium import webdriver
driver = webdriver.Chrome()
webdriver - 启动Remote
from selenium import webdriver
driver = webdriver.Remote( browser_name="firefox",
platform="any")
webdriver - 启动IE
from selenium import webdriver
driver = webdriver.Ie()
备注: 除了启动IE外,webdriver启动其他浏览器均需安装相应浏览器的驱动组件,关于这块的环境搭建请参见
python webdriver自动化测试通过控件css定位元素
有一段html代码如下:
milkcheese
现在通过css来查找到相应的span元素,代码demo如下:
from mon.by import By
#查找css为span元素方法一
cheese = driver.find_element_by_css_selector("#food
span.dairy.aged")
#查找css为span元素方法二
cheese = driver.find_element(By.CSS_SELECTOR, "#food
span.dairy.aged")
python webdriver自动化测试通过控件 Partial Link Text定位元素
有一段html代码如下:
现在通过Partial Link Text来查找到相应的a元素,代码demo如下:
from mon.by import By
#查找Partial Link Text为a元素方法一
driver.find_element_by_partial_link_text("cheese")
#查找Partial Link Text为a元素方法二
cheese = driver.find_element(By.PARTIAL_LINK_TEXT,
python webdriver自动化测试通过控件link text定位元素
有一段html代码如下:
现在通过link text来查找到相应的a元素,代码demo如下:
from mon.by import By
#查找link text为cheese元素方法一
cheese = driver.find_element_by_link_text("cheese")
#查找link text为cheese元素方法二
cheese = driver.find_element(By.LINK_TEXT, "cheese")
python webdriver自动化测试通过控件tag name定位元素
有一段html代码如下:
现在通过tag name来查找到相应的iframe元素,代码demo如下:
from mon.by import By
#查找tag name为iframe元素方法一
frame = driver.find_element_by_tag_name("iframe")
#查找tag name为iframe元素方法二
frame = driver.find_element(By.TAG_NAME, "iframe")
python webdriver自动化测试通过控件class name定位元素
有一段html代码如下:
现在通过class name来查找到相应的div元素,代码demo如下:
from mon.by import By
#查找第一个class为cheese的div元素
cheeses = driver.find_elements_by_class_name("cheese")
# 查找所有class为cheese的div元素
cheeses = driver.find_elements(By.CLASS_NAME, "cheese")
python webdriver自动化测试通过控件name定位元素
#导入webdriver
from selenium import webdriver
# 启动firefox初始化webdriver
# ie: driver = webdriver.Ie()
# chrome: driver = webdriver.Chrome()
driver = webdriver.Firefox()
# 访问baidu官网
driver.get("")
# 定位输入框
element= driver.find_element_by_name("wd")
# 打印出来看一下
# 会看到一个内存地址,说明已经找到
print element
# 关闭浏览器、退出webdriver
driver.quit()
python webdriver自动化测试通过控件id定位元素
#导入webdriver
from selenium import webdriver
# 启动firefox初始化webdriver
# ie: driver = webdriver.Ie()
# chrome: driver = webdriver.Chrome()
driver = webdriver.Firefox()
# 访问baidu官网
driver.get("")
# 定位输入框
element = driver.find_element_by_id("kw")
# 打印出来看一下
# 会看到一个内存地址,说明已经找到
print element
# 关闭浏览器、退出webdriver
driver.quit()
python webdriver自动化测试访问某个网址
python webdriver自动化测试访问指定网址示例
#导入webdriver
from selenium import webdriver
# 启动firefox初始化webdriver
# ie: driver = webdriver.Ie()
# chrome: driver = webdriver.Chrome()
driver = webdriver.Firefox()
# 访问google官网
# 记得网址前最好带http
driver.get("")
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。当前位置: >>
PYTHON自动化测试框架
之前有介绍过 selenium 的自动化测试框架,随着 Python 这种脚本语言的强大功能越来越被广大的程序员所 重视,这种之前在国内流行度不高的语言近来气势高涨。各种第三方模块层出不穷。这里 Jason 介绍下之前 用过的 python 自动化测试的一个框架 PAMIE,留下点 memory。 PAMIE(Python Automated Module For Interne
t Explorer),PAMIE 它与 selenium 差不多,能让你如 同写 JS 一样来操作 IE 浏览器。包括自动启动,访问链接,设置文本框值,获取按钮,执行点击事件,甚至 执行页面 JS 方法等等。 首先我们需要 PAMIE Package 和您 python 版本对应的 python win32 扩展。 PAMIE 我们能从这里下载。 python win32 扩展我们能从这里下载。 在 PAMIE 压缩包中有相关的 docs 文件,介绍了 PAMIE 的 API 使用说明。2.X 版本与 3.x 版本在引用的时 候有稍许差异。这里简单的举个例子。 打开网页相关的网页: ie.navigate(‘url’) doc 化 ie frame 然后运行相应的脚本 mainFrame = ie.getFrame(‘main’) pwindow = mainFrame.document.parentWindow pwindow.execScript(‘XXXX’) 通过 DOM 得到或者设置相应的值 doc.getElementById(‘XXXX’).value = XXXXX 填文本框 ie.setTextBox(‘firstname’,'FirstName’) ie.setTextBox(‘lastname’,'LastName’) 选择下拉菜单: ie.selectListBox(‘state’,”MS”) 方形选择框: ie.setCheckBox(‘cxbx’,1) #1 2 3 或 * 号等都是 “勾选”的意思 ” 空字符串代表取消选择 圆形选择框: 这里选择 Jazz ie.setRadioButton(“music”,”Jazz”) # music 是这个 选择列表的名字,从网页源代码里找出 最后提交按钮 ie.clickButton(“Submit”)
http接口自动化测试框架实现_计算机软件及应用_IT/计算机_专业资料。http 接口...listid=1 二、实现方法 1、选用 Python 脚本来驱动测试 2、采用 Excel 表格...selenium + python 自动化测试环境搭建
18:21 by 虫师, 36846 阅读, 16 评论, 收藏, 编辑 selenium 是一个 web 的自动化测试工具,不少学习功能...自动化框架 Robot Framework C python 开发的功能强大的自 动化测试套件 Selenium C流行的跨平台 web 自动化测试框架 第二课:selenium 学习 1 selenium 介绍C...如何选择自动化测试框架软件自动化测试,作为手工测试的替代,越来越受到关注。Pekka...做自动化需要哪些技能?一般来说,包括 Python、Ruby、Perl、JavaScript、正则 ...python webdriver 自动化测试实战_计算机软件及应用_IT/计算机_专业资料。python ...更高级的关键字驱动, 可以自己定义 keyword 然后“注册”到框架; 从而实现更...编写自动化测试脚本心得 ---菜鸟入门篇 本文中将不会讲解 ISEE 的测试原理、不说明 Python 的常用语法、不介绍 OTP 测试平 台的架构, 自动化测试组的牛人们已经...基于Selenium 的 Web 自动化测试框架 摘要 随着 Web 应用的快速发展,Agile 开发...PHP、Python、Ruby, 它可以测试的浏览器有 IE、Firefox、Opera、Safari、Chrome...自动化测试框架安装及使用_计算机软件及应用_IT/计算机_专业资料。自动化测试框架...9 1 Python +Nosetests 安装及配置下面所有安装均以离线安装为例(考虑公司网络...常见的自动化框架开发语言有: C,C++,Java, TCL, Perl, Ruby, Python。 使用 C 或者 C++,对于整个自动化测试框架的执行效率而言会有所提高。但是由于常见的测试...Web 自动化测试中的接口测试 1、背景 1.1 Web 程序中的接口 1.1.1 典型...java 的 servlet,jsp,ssh 框架,.net 的 aspx,还包括其他脚本如 php,python。...
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。学习用python来自动化测试(一) - 知乎专栏
{"debug":false,"apiRoot":"","paySDK":"/api/js","wechatConfigAPI":"/api/wechat/jssdkconfig","name":"production","instance":"column","tokens":{"X-XSRF-TOKEN":null,"X-UDID":null,"Authorization":"oauth c3cef7c66aa9e6a1e3160e20"}}
{"database":{"Post":{"":{"title":"学习用python来自动化测试(一)","author":"ma-bu-shui","content":"Python是门挺强大的语言,同常见的C,Java,C#等有几点不同,一个是定义变量前不用定义类型,直接赋值就行,非常方便,另一个是没有begin,end,{,}这些麻烦的东西,回车空格就是这些东西的替代;第三点就是C语言中最让人讨厌的判断语句中的==号可以在编译时直接发现写成=的情况了。
目前Python使用最多的一个是网页的自动化测试,另一个是数据分析。我最近抽空学习了下自动化测试。Python的自动化测试用的是selenium模块,可以模拟Chrome,IE,FireFox等浏览器,但是要下载对应的模拟执行文件先。下载好后,就可以模拟浏览器进行自动化测试了。下面是学习笔记。
(一)首先是文件开头上要写
from selenium import webdriver
#引入selenium模块。
from mon.keys import Keys
#模拟键盘输入。
import random,time
#经常要用到,一个是产生随机数,一个是时间操作的功能
(二)最简单的一段功能:
browser = webdriver.Chrome()
#启动chrome浏览器
time.sleep(3)
browser.maximize_window() #浏览器窗口最大化
OutputLogin = Login(browser,username, password) #登录网页的函数,后续讲解
time.sleep(int(random.uniform(1, 10)))#随机产生一个1到9秒的随机整数,然后等待这个时间
browser.quit() #退出浏览器
(三)定义一个登录系统的函数def Login(browser,username, password): #要有冒号
browser.get('网页的URL')
#浏览器登录网页的URL
time.sleep(3)
# find user login input box
elem_user=browser.find_element_by_id(\"username\")
#这个是通过find_element_by_id函数来寻找定位网页上的id为username的控件
elem_user.clear()
elem_user.send_keys(username)
#然后向这个控件发送username的值
time.sleep(1)
# find pwd input box
elem_pwd=browser.find_element_by_id(\"password\")
elem_pwd.clear()
elem_pwd.send_keys(password)
time.sleep(1)
# enter RETURN in pwd box to activate
elem_pwd.send_keys(Keys.RETURN)
#然后向这个控件发送回车键,注意,如果是键盘上的回车,SHIFT,CONTROL键之类的,要用Keys.控制键的名称作为输入。
return username \"
login successfully \\n\"
return username \"
login failed \\n\"
python是非常简洁的语言,函数之类的都没有begin,end,{,}这些麻烦的东西(四)定位元素自动化测试中常用的功能是通过各种元素,例如id,class,xpath,css等内容来寻找定位元素,而且不光可以定位一个元素,还可以定位一队元素,然后逐个操作。 #定义一个定位操作单个元素的函数def Signup_Click(browser):
input3 = browser.find_element_by_class_name(\"checkbtn\")
input3.click()
return \"Signup successfully \\n\"
return \"Signup failed \\n\"
pass #定义一个定位操作多个元素的函数def Love_Clicks(browser,k):
inputs2 = browser.find_elements_by_class_name(\"love\")
#注意,是elements,不是element,复数形式
for input2 in inputs2:
input2.click()
return str(i)+\" Love successfully \\n\"(五)键盘和鼠标操作 Python也可以模拟鼠标和键盘的操作,不过要注意的是键盘带来的屏幕游标位置的挪动和鼠标在屏幕上的挪动位置,两个是不同的。
首先要在文件头引入
from mon.action_chains import ActionChains#定义一个函数def Transfer_Clicks(browser):
browser.execute_script(\"window.scrollBy(0,-document.body.scrollHeight)\",\"\")
#这个是执行一段Javascript函数,将网页滚到到网页顶部。
inputs1 = browser.find_elements_by_class_name(\"feedAttr_transfer\")
for input1 in inputs1:
ActionChains(browser).click(input1).perform()
#模拟鼠标点击控件input1,此时的鼠标位置在input1处
browser.execute_script(\"window.scrollBy(0,200)\",\"\")
#向下滚动200个像素,鼠标位置也跟着变了
ActionChains(browser).move_by_offset(0,-80).perform()
#向上移动鼠标80个像素,水平方向不同
ActionChains(browser).click().perform()
#鼠标左键点击
ActionChains(browser).key_down(Keys.TAB).perform()
#模拟tab键的输入
ActionChains(browser).send_keys(Keys.ENTER).perform()
#模拟输入ENTER键
return \"Transfer successfully \\n\"(六)文件操作读取目录下所有TXT文件,并写入TXT文档中def Write_Txt(Dist):
#Dist是目录
Big_Txt = ‘111’
fw = open ('%s' %(Dist Big_Txt '.txt'),'a')
#打开Dist目录下的111的txt文件
for item in os.listdir(Dist): # 遍历指定目录
if os.path.isfile(Dist item) and item.endswith('.txt') : # 判断是否为.txt文件
f = open((Dist item),'r') # 打开文件
line=f.readline()#读取一行数据,如果是多行数据,就是readlines,然后在循环处理
for i in range(2):
fw.write(line) #写入文件
fw.close() (七)点击网页python可以实现刷点击量的功能,用webbrowser就行首先文件头引入import os,time,sys,re,randomimport webbrowser#定义打开网页def Open_Blog(k,j):
lines = open('e:\\\\temp.txt').readlines()
#打开文件,读入每一行的URL地址
for s in lines:
if s.find(URL)&0:
UrlTemp = URL
for m in range(j): #轮询次数
webbrowser.open_new_tab(UrlTemp)##打开新的网页tab页
time.sleep(int(random.uniform(1, k)))#随机等待一定时间
os.system('taskkill /F /IM 360chrome.exe')#需要定时关闭浏览器的进程,不然会死机,
OutputBlog = 'open ' str(打开数量) ' pages\\n'
return OutputBlog","updated":"T08:44:06.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"collapsedCount":0,"likeCount":6,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","titleImage":"","links":{"comments":"/api/posts//comments"},"reviewers":[],"topics":[{"url":"/topic/","id":"","name":"Python"},{"url":"/topic/","id":"","name":"自动化测试"}],"adminClosedComment":false,"titleImageSize":{"width":0,"height":0},"href":"/api/posts/","excerptTitle":"","tipjarState":"closed","annotationAction":[],"sourceUrl":"","pageCommentsCount":0,"hasPublishingDraft":false,"snapshotUrl":"","publishedTime":"T16:44:06+08:00","url":"/p/","lastestLikers":[{"bio":"生活无畏,路途不退!","isFollowing":false,"hash":"a212ddef595f0f7d75f313","uid":08,"isOrg":false,"slug":"yan-fu-kun","isFollowed":false,"description":"","name":"Mr 颜","profileUrl":"/people/yan-fu-kun","avatar":{"id":"f411a3f84","template":"/{id}_{size}.jpg"},"isOrgWhiteList":false},{"bio":"翻过大山,跨过河流","isFollowing":false,"hash":"abeffaa96fd0","uid":778300,"isOrg":false,"slug":"lin-ruo-han-22-89","isFollowed":false,"description":"","name":"林若寒","profileUrl":"/people/lin-ruo-han-22-89","avatar":{"id":"da8e974dc","template":"/{id}_{size}.jpg"},"isOrgWhiteList":false},{"bio":"php程序猿,半个宅男,小小的梦想","isFollowing":false,"hash":"3dbaa25a1067feadf64c454","uid":12,"isOrg":false,"slug":"hu-yifan-9","isFollowed":false,"description":"懒癌晚期,汪!\n有了喜欢的女孩子,她会画画=。=\n努力成为配得上她的人","name":"平凡之露","profileUrl":"/people/hu-yifan-9","avatar":{"id":"cd1d26eedac117d48b5e4","template":"/{id}_{size}.jpg"},"isOrgWhiteList":false},{"bio":null,"isFollowing":false,"hash":"e874db846029","uid":32,"isOrg":false,"slug":"chen-ying-xiong-93","isFollowed":false,"description":"","name":"陈英雄","profileUrl":"/people/chen-ying-xiong-93","avatar":{"id":"ffe47de38795eef84a803971","template":"/{id}_{size}.jpg"},"isOrgWhiteList":false},{"bio":null,"isFollowing":false,"hash":"f549e719b907bed2e231","uid":446100,"isOrg":false,"slug":"alex-wang-57-91","isFollowed":false,"description":"","name":"alex wang","profileUrl":"/people/alex-wang-57-91","avatar":{"id":"da8e974dc","template":"/{id}_{size}.jpg"},"isOrgWhiteList":false}],"summary":"Python是门挺强大的语言,同常见的C,Java,C#等有几点不同,一个是定义变量前不用定义类型,直接赋值就行,非常方便,另一个是没有begin,end,{,}这些麻烦的东西,回车空格就是这些东西的替代;第三点就是C语言中最让人讨厌的判断语句中的==号可以在编译…","reviewingCommentsCount":0,"meta":{"previous":null,"next":null},"annotationDetail":null,"commentsCount":0,"likesCount":6,"FULLINFO":true}},"User":{"ma-bu-shui":{"isFollowed":false,"name":"马步水","headline":"","avatarUrl":"/v2-1db0013acd10e249ef554c0f08fda65b_s.jpg","isFollowing":false,"type":"people","slug":"ma-bu-shui","bio":"子见南子,云胡不喜","hash":"fc883f5bf6f","uid":16,"isOrg":false,"description":"","profileUrl":"/people/ma-bu-shui","avatar":{"id":"v2-1db0013acd10e249ef554c0f08fda65b","template":"/{id}_{size}.jpg"},"isOrgWhiteList":false,"badge":{"identity":null,"bestAnswerer":null}}},"Comment":{},"favlists":{}},"me":{},"global":{},"columns":{"next":{}},"columnPosts":{},"columnSettings":{"colomnAuthor":[],"uploadAvatarDetails":"","contributeRequests":[],"contributeRequestsTotalCount":0,"inviteAuthor":""},"postComments":{},"postReviewComments":{"comments":[],"newComments":[],"hasMore":true},"favlistsByUser":{},"favlistRelations":{},"promotions":{},"switches":{"couldAddVideo":false},"draft":{"titleImage":"","titleImageSize":{},"isTitleImageFullScreen":false,"canTitleImageFullScreen":false,"title":"","titleImageUploading":false,"error":"","content":"","draftLoading":false,"globalLoading":false,"pendingVideo":{"resource":null,"error":null}},"drafts":{"draftsList":[],"next":{}},"config":{"userNotBindPhoneTipString":{}},"recommendPosts":{"articleRecommendations":[],"columnRecommendations":[]},"env":{"isAppView":false,"appViewConfig":{"content_padding_top":128,"content_padding_bottom":56,"content_padding_left":16,"content_padding_right":16,"title_font_size":22,"body_font_size":16,"is_dark_theme":false,"can_auto_load_image":true,"app_info":"OS=iOS"},"isApp":false},"sys":{}}Python - 如何用Selenium包做Web页面自动化测试
Selenium是ThoughtWorks公司为Web自动化测试开发的工具,除支持多种操作如、Mac OS X、Windows外,还支持Chrome、Firefox、Safari、Opera、IE等多种,适合做Web应用的兼容性测试及自动化测试。在Web开发的持续集成中,如果每次迭代都采用手工方式对已有的功能进行回归测试,需要的人力、时间成本将是非常巨大的,采用Selenium进行自动化地回归测试,可以让团队的精力集中在新功能的测试上,提升工作效率。
本文主要介绍在中使用Selenium包进行自动化测试的方法,您需要具备一些的知识及搭建Web服务器的方法,这样才能在学习的过程中亲手做实验,另外完整的示例代码放在我的上,欢迎大家访问。首先使用pip install selenium命令安装Python的Selenium包。针对不同的浏览器及其版本使用Selenium的方法会有所不同,如下是我的版本信息:
操作系统:Mac OS Sierra Python: 2.7.10 Selenium: 2.53.6 Firefox: 47.0.1 Safari: 10.0 Opera: 39.0 Chrome: 53
Selenium运行自动化测试的方法是打开浏览器,按照脚本规定的步骤模拟人的操作,如点击按钮、在文本框输入文本等,然后检查期望结果。第一步就是要知道访问什么页面,比如测试使用Firefox访问百度:
# -*- coding: utf-8 -*-
from selenium import webdriver
from mon.keys import Keys
# 目前支持的driver有Firefox, Chrome, IE和Remote等
driver = webdriver.Firefox(executable_path=&./geckodriver&)
# 直到页面被加载完(onload事件被触发)才将控制权返回脚本
driver.get('')
assert u'百度一下,你就知道' in driver.title
print u&当前URL:&, driver.current_url
对于使用了大量AJAX的页面,webdriver并不知道页面何时真正加载完成,这时需要使用告诉Selenium等待时间。
Webdriver是Selenium能够实现跨浏览器自动化测试的关键,通常简称wd。不同浏览器有不同的wd,但对外提供了统一的接口调用各个浏览器自身的自动化测试接口。上面Firefox的webdriver请。
打开页面后,第二件事情就是定位到我们要操作的页面元素,定位单个页面元素有如下方法(下面的方法,如果没有定位到相应的元素,抛出NoSuchElementException异常):
find_element_by_id:通过id属性定位元素(返回第一个匹配的)。 find_element_by_name:通过name属性定位元素(返回第一个匹配的)。 find_element_by_xpath:通过xpath定位元素(返回第一个匹配的)。 find_element_by_link_text:通过超链接文本定位超链接元素,必须是完全匹配(返回第一个匹配的)。 find_element_by_partial_link_text:通过超链接文本定位超链接元素,可以是部分匹配(返回第一个匹配的)。 find_element_by_tag_name:通过标签名字定位元素(返回第一个匹配的)。 find_element_by_class_name:通过class属性定位元素(返回第一个匹配的)。 find_element_by_css_selector:使用选择器语法定位元素(返回第一个匹配的)。
上面的方法,对应的批量定位方法如下(返回对应网页元素的列表):
find_elements_by_name find_elements_by_xpath find_elements_by_link_text find_elements_by_partial_link_text find_elements_by_tag_name find_elements_by_class_name find_elements_by_css_selector
此外,webdriver还有find_element及find_elements方法定位元素:
from mon.by import By
driver.find_element(By.XPATH, '//button[text()=&Some text&]')
driver.find_elements(By.XPATH, '//button')
By对象含有如下属性:
ID :元素id属性。 XPATH:xpath。 LINK_TEXT :超链接文本。 PARTIAL_LINK_TEXT :部分超链接文本。 NAME :元素name属性。 TAG_NAME :元素标签名字。 CLASS_NAME :元素class属性。 CSS_SELECTOR :使用CSS元素选择器语法。
操作文本框元素
比如在百度的输入框查询信息:
elem = driver.find_element_by_name('wd')
# 清空预填充内容
elem.clear()
# Keys对象表示键盘按键,如F1、ALT、ARROW_DOWN等
elem.send_keys(u'48.HTTP基本认证与摘要认证', Keys.RETURN)
assert u'Mars Loo的博客' in driver.page_source
# quit方法关闭整个浏览器
driver.quit()
上传文件也可以采用send_keys方法,此时参数提供为文件的路径即可。
操作表单元素
定位到一个表单元素后,可以调用其submit方法提交表单:
form = ff.find_element_by_name('survey')
form.submit()
如果调用submit方法的元素不是表单,抛出异常NoSuchElementException。提交表单也可以定位到提交按钮元素后,调用其click方法:
submit = ff.find_element_by_id('submit')
submit.click()
操作select元素
# 采用xpath获取第一个select元素(即使有多个也返回第一个)
element = ff.find_element_by_xpath(&//select[@name='car']&)
# 获取所有选项,打印选项值并点击
all_options = element.find_elements_by_tag_name(&option&)
for option in all_options:
print &Value is: %s& % option.get_attribute(&value&)
option.click()}

我要回帖

更多关于 python自动化测试框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信