设为首页 加入收藏

TOP

Python 自动化测试工具Selenium(一)
2017-11-19 09:07:03 】 浏览:275
Tags:Python 自动化 测试工具 Selenium

WebDriver环境搭建

WebDriver是主流Web应用自动化测试框架,具有清晰面向对象 API,能以最佳的方式与浏览器进行交互。
驱动程序,用以启动各浏览器,具体的驱动程序需要对应的驱动,在浏览器官网上可以找到下载地址。

Selenium 安装

selenium 是一个web的自动化测试工具。用代码的方式去模拟浏览器操作过程
直接利用pip工具安装:

pip install selenium

Selenium 使用

1. 一个基础实例:

#! /usr/bin/python
# -*- coding:utf8 -*-

# 启动浏览器需要用到
from selenium import webdriver
#引入ActionChains鼠标操作类
from selenium.webdriver.common.action_chains import ActionChains
#引入keys类操作(提供键盘按键支持,最后一个K要大写)
from selenium.webdriver.common.keys import Keys 
#引入时间和系统环境
import time
import os

#驱动设置,指定驱动路劲
iepath = os.path.abspath('D:\WebDriver\IEDriverServer.exe')
browser = webdriver.Ie(iepath)

#打开页面
browser.get('http://www.baidu.com')
browser.maximize_window()  # 浏览器最大化

#获取内容
text = browser.find_element_by_id('s_mod_weather').text
print text 
time.sleep(3)

#模拟输入与点击提交
browser.find_element_by_id('kw').send_keys(u'Python')
browser.find_element_by_id('su').click()
time.sleep(3)

#退出
browser.quit()

2. 查找元素

#通过ID查找
element = browser.find_element_by_id("passwd-id")
#通过标签中的name属性查找
element = browser.find_element_by_name("passwd")
#xpath查找
element = browser.find_element_by_xpath("//input[@id='passwd-id']")
#通过链接文本获取超链接
#如:<a href="continue.html">Continue</a>
element = browser.find_element_by_link_text("Continue")
element = browser.find_element_by_partial_link_text("Conti")
#通过标签名查找元素
element = browser.find_element_by_tag_name()
#通过Class name 定位元素
element = browser.find_element_by_class_name()
#通过CSS选择器查找元素
#如:<p class="content">Site content goes here.</p>
element = browser.find_element_by_css_selector("p.content")

W3C XPath Recommendation
XPath Tutorial- with interactive examples.
XPath Helper- for Google Chrome
CSS选择器介绍

查找多个,数组形式:

# 一次查找多个元素 (这些方法会返回一个list列表):
elements = browser.find_elements_by_name()
elements = browser.find_elements_by_xpath()
elements = browser.find_elements_by_link_text()
elements = browser.elements = browser.find_elements_by_partial_link_text()
elements = browser.find_elements_by_tag_name()
elements = browser.find_elements_by_class_name()
elements = browser.find_elements_by_css_selector()

除了上述的公共方法,下面还有两个私有方法:find_element 和 find_elements

from selenium.webdriver.common.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 = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"

** 当你使用XPATH时,你必须注意,如果匹配超过一个元素,只返回第一个元素。 如果上面也没找到,将会抛出 `NoSuchElementException异常。**

3. 页面交互

简单交互:

#键盘输入
element.send_keys("some text")
#通过”Keys”类来模式输入方向键
element.send_keys("and some key", Keys.ARROW_DOWN)
#清除输入框中的内容 (input或者textarea元素)
element.clear()

下拉框选择:

element = browser.find_element_by_xpath("//select[@name='name']")
all_options = element.find_elements_by_tag_name("option")
for option in all_option
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇面向对象3 下一篇paramiko的SFTP对象实现Linux的sc..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目