Webdriver
来源:互联网 发布:淘宝好的丰胸产品 编辑:程序博客网 时间:2024/05/16 19:24
Webdriver概述
Webdriver (Selenium2)是一种用于Web应用程序的自动测试工具,它提供了一套友好的API,与Selenium 1(Selenium-RC)相比,Webdriver 的API更容易理解和使用,其可读性和可维护性也大大提高。Webdriver完全就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像Selenium 1那样需要先启动服务。
支持浏览器
- Firefox (FirefoxDriver)
- IE(InternetExplorerDriver)
- Opera(OperaDriver)
- Chrome (ChromeDriver)
- safari(SafariDriver)
支持语言
- Java
- C#
- PHP
- Python
- Perl
- Ruby
安装,卸载、查看
安装:pip install selenium==XXXX(不写死就是安装最新版本)
卸载 pip uninstall selenium
查看版本号:
pip show selenium
多浏览器运行
启动Firefo
1.FireFox 48以上版本
Selenium 3.X +FireFox驱动——geckodriver
2.Firefox 48 以下版本
Selenium2.X 内置驱动
驱动下载地址https://github.com/mozilla/geckodriver/releases
启动IE浏览器
1.IE 9以上版本
Selenium3.X +IE驱动
2.IE 9以下版本
Selenium 2.X +IE驱动
启动Chrome浏览器
selenium2.x/3.x +Chrome驱动
注意!
各个驱动下载地址: http://www.seleniumhq.org/download/
浏览器位数的版本和驱动版本要一致! 如果是32bit浏览器而Driver是64bit则会导致脚本运行失败!
示例
打开页面
1.启动火狐浏览器,
2.首先打开我要自学网页面,打印网页标题,等待3秒
3.打开百度首页,打印网页标题,再等待2秒
4.关闭浏览器。
from selenium import webdriverfrom time import sleep#加载浏览器驱动driver=webdriver.Firefox()#打开自学网页面driver.get("http://www.51zxw.net")print(driver.title)sleep(3)#打开百度首页driver.get("http://www.baidu.com")print(driver.title)sleep(3)#关闭浏览器driver.quit()
浏览器操作
#页面最大化driver.maximize_window()#指定页面大小driver.maximize_window()#刷新页面driver.refresh()#后退driver.back() #前进driver.forward()#退出driver.quit()
元素定位
#id与name 定位driver.find_element_by_id("kw").send_keys("Selenium")driver.find_element_by_name("wd").send_keys("Selenium")#点击driver.find_element_by_id("su").click()
tag_name定位
#定位标签名为input的元素driver.find_element_by_tag_name("input").send_keys("selenium")#获取页面所有标签名称为“input”的标签。driver.find_elements_by_tag_name("input").send_keys("selenium")#获取页面所有标签名称为“input”的第一个标签。driver.find_elements_by_tag_name("input")[0].send_keys("selenium")
class_name定位
driver.find_element_by_class_name("s_ipt").send_keys("Selenium")
link_text定位
#选择这个元素的link textdriver.find_element_by_partial_link_text('程序开发').click()#partial link text就是选择这个元素的link text中一部分字段driver.find_element_by_partial_link_text('程序开发').click()
XPath定位
# 绝对路径定位driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("51zxw")# 利用元素熟悉定位--定位到input标签中为kw的元素driver.find_element_by_xpath("//input[@id='kw']").send_keys("Selenium")# 定位input标签中name属性为wd的元素driver.find_element_by_xpath("//input[@name='wd']").send_keys("Selenium")# 定位所有标签元素中,class属性为s_ipt的元素driver.find_element_by_xpath("//*[@class='s_ipt']").send_keys("Python3")
Xpath层级与逻辑定位
#层级和属性结合定位--自学网首页输入用户和名密码driver.find_element_by_xpath("//form[@id='loginForm']/ul/input[1]").send_keys("51zxw")driver.find_element_by_xpath("//form[@id='loginForm']/ul/input[2]").send_keys("66666")#逻辑运算组合定位driver.find_element_by_xpath("//input[@class='loinp' and @name='username']").send_keys("51zxw")
Css定位
#根据id来定位driver.find_element_by_css_selector('#kw').send_keys("Selenium")#根据class定位driver.find_element_by_css_selector('.s_ipt').send_keys('python')#通过属性来定位driver.find_element_by_css_selector("[autocomplete='off']").send_keys("selenium")#通过元素层级来定位driver.find_element_by_css_selector("form#loginForm>ul>input").send_keys("51zxw")
下拉菜单元素定位——使用Select类定位
from selenium import webdriverfrom time import sleepfrom selenium.webdriver.support.ui import Selectdriver=webdriver.Firefox()driver.get("http://www.51zxw.net")sleep(2)#利用Select类来进行定位select = Select(driver.find_element_by_css_selector("[name='CookieDate']"))select.select_by_index(2)select.select_by_visible_text("留一年")select.select_by_value("1")sleep(2)driver.quit()
阅读全文
0 0
- webDriver
- webdriver
- WebDriver
- Webdriver
- Selenium WebDriver
- selenium webdriver
- Selenium WebDriver
- webdriver学习
- webdriver自动化
- ruby webdriver
- WebDriver入门
- Selenium WebDriver
- selenium webdriver
- webdriver api
- WebDriver实现
- WebDriver原理
- WebDriver封装
- webdriver一
- LevelDB源码分析之六:skiplist(2)
- Linux上安装mysql-5.6版本
- 86. Partition List
- 实现ViewPager中的Fragment无感知动态替换
- Android微信分享
- Webdriver
- Reflections
- 关于指针问题
- Qt应用zlog记录调试日志信息保留原有DEBUG调试接口
- window.sessionStorage.setItem
- CorelDRAW Technical X7.2破解版
- SEO的基本概念 和 提交SITEMAP到搜索引擎
- JavaScript更新日志(3)
- 日期选择控件bootstrap-datetimepicker demo