一、Selenium基础介绍及安装

1、Selenium简介

Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。

2、安装Selenium

pip install Selenium

3、安装浏览器驱动

当selenium升级到3.0之后,对不同的浏览器驱动进行了规范。如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动。

各浏览器下载地址:

Firefox浏览器驱动:geckodriver

Chrome浏览器驱动:chromedriver

IE浏览器驱动:IEDriverServer

Edge浏览器驱动:MicrosoftWebDriver

Opera浏览器驱动:operadriver

PhantomJS浏览器驱动:phantomjs

注:部分浏览器驱动地址需要外网。windows配置浏览器驱动环境

ubuntu环境下载解压后,放到/usr/bin

二、Selenium 快速入门

1、selenium元素定位用法

假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。

<html>
<head>
<body link="#0000cc">
<a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
<form id="form" class="fm" name="f" action="/s">
<span class="soutu-btn"></span>
<input id="kw" class="s_ipt" name="wd" value="" maxlength="" autocomplete="off">
<form/>
<body/>
<head/>
<html/>

我们的目的是要定位input标签的输入框。

  • 通过id定位:
dr.find_element_by_id("kw")

  • 通过name定位:
dr.find_element_by_name("wd")

  • 通过class name定位:
dr.find_element_by_class_name("s_ipt")

  • 通过tag name定位:
dr.find_element_by_tag_name("input")

  • 通过xpath定位,xpath定位有N种写法,这里列几个常用写法:
dr.find_element_by_xpath("//*[@id='kw']")
dr.find_element_by_xpath("//*[@name='wd']")
dr.find_element_by_xpath("//input[@class='s_ipt']")
dr.find_element_by_xpath("/html/body/form/span/input")
dr.find_element_by_xpath("//span[@class='soutu-btn']/input")
dr.find_element_by_xpath("//form[@id='form']/span/input")
dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")

  • 通过css定位,css定位有N种写法,这里列几个常用写法:
dr.find_element_by_css_selector("#kw")
dr.find_element_by_css_selector("[name=wd]")
dr.find_element_by_css_selector(".s_ipt")
dr.find_element_by_css_selector("html > body > form > span > input")
dr.find_element_by_css_selector("span.soutu-btn> input#kw")
dr.find_element_by_css_selector("form#form > span > input")

接下来,我们的页面上有一组文本链接。

<a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻</a>
<a class="mnav" href="http://www.hao123.com" name="tj_trhao123">hao123</a>

  • 通过link text定位:
dr.find_element_by_link_text("新闻")
dr.find_element_by_link_text("hao123")

  • 通过link text定位:
dr.find_element_by_partial_link_text("新")
dr.find_element_by_partial_link_text("hao")
dr.find_element_by_partial_link_text("")

最新文章

  1. jquery实现tab页切换显示div
  2. 前端构建工具gulp入门教程
  3. [转] C# Winform 拦截关闭按钮触发的事件
  4. C# 文件粉碎
  5. MM32Flash读写操作(兼容STM32)
  6. codeforces 337C Quiz(贪心)
  7. File类与FileInfo类
  8. mvc 笔记
  9. python关于列表的操作
  10. db2 表关联查询
  11. mysql客户端(Navicat)远程登录操作遇到问题1142
  12. IIC稳定性.VBS
  13. Lintcode470-Tweaked Identical Binary Tree-Easy
  14. C#将unix时间戳转换成.net的DateTime类型的代码
  15. 增删改查Spring+MyBatis
  16. B - Moo Volume
  17. python-----编写接口,使用postman与soapiu与jemeter访问调用
  18. Unity---判断某个点是否在摄像机的视景范围内
  19. .net core WebApi Mutex实现并发同步
  20. CF875D High Cry

热门文章

  1. elk收集tomcat日志
  2. 【Leetcode_easy】784. Letter Case Permutation
  3. 最新 二三四五java校招面经 (含整理过的面试题大全)
  4. PCL学习(五)如何在mesh模型上sample更多点及三维物体姿态估计
  5. Linux 时间以及时间间隔的简单处理.
  6. vs2019将小游戏打包成msi踩的坑(个人)
  7. 关于Python的导入覆盖解决办法
  8. preg_replace
  9. post请求 大坑 注意点
  10. asp.net core-1.在控制台创建ASP.NET Core应用程序