(一)Selenium基础
1.Selenium简介
2.支持多种操作系统
3.安装Selenium
pip install Selenium |
4.安装浏览器驱动
Selenium3.x调用浏览器必须有一个webdriver驱动文件
Chrome驱动文件下载:点击下载chromedrive
Firefox驱动文件下载:点解下载geckodriver
5.配置环境变量
设置浏览器的地址非常简单。 我们可以手动创建一个存放浏览器驱动的目录,如: F:\GeckoDriver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下。
我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“F:\GeckoDriver”目录添加到Path的值中。比如:Path字段;F:\GeckoDriver
参考浏览器驱动环境配置
(二)Selenium 快速入门
1.Selenium提供了8种定位方式:
1.id
2.name
3.class name
4.tag name
5.link text
6.partial link text
7.xpath
8.css selector
2.定位元素的8种方式
3.实例演示
假如我们有一个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="255" autocomplete="off"> |
通过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']") 1 |
通过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") |
通过partial link text定位:
dr.find_element_by_partial_link_text("新") dr.find_element_by_partial_link_text("hao") dr.find_element_by_partial_link_text("123") |
4.Selenium库下webdriver模块常用方法的使用
1.控制浏览器操作的一些方法
实例演示
from selenium import webdriver from time import sleep #1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口 browser = webdriver.Firefox(executable_path ="F:\GeckoDriver\geckodriver") #2.通过浏览器向服务器发送URL请求 browser.get("https://www.baidu.com/") sleep(3) #3.刷新浏览器 browser.refresh() #4.设置浏览器的大小 browser.set_window_size(1400,800) #5.设置链接内容 element=browser.find_element_by_link_text("新闻") element.click() element=browser.find_element_by_link_text("习近平的“下团组”时间") element.click() |
2.鼠标事件
在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。
实例演示
from selenium import webdriver #1.引入 ActionChains 类 from selenium.webdriver.common.action_chains import ActionChains driver= webdriver.Chrome("F:\Chrome\ChromeDriver\chromedriver") driver.get("https://www.baidu.cn") #2.定位到要悬停的元素 element= driver.find_element_by_link_text("设置") #3.对定位到的元素执行鼠标悬停操作 ActionChains(driver).move_to_element(element).perform() |
3.键盘事件
Selenium中的Key模块为我们提供了模拟键盘按键的方法,那就是send_keys()方法。它不仅可以模拟键盘输入,也可以模拟键盘的操作。
常用的键盘操作如下:
组合键的使用
4.获取断言信息
不管是在做功能测试还是自动化测试,最后一步需要拿实际结果与预期进行比较。这个比较的称之为断言。通过我们获取title 、URL和text等信息进行断言。
实例演示
from selenium import webdriver from time import sleep driver = webdriver.Firefox(executable_path ="F:\GeckoDriver\geckodriver") driver.get("https://www.baidu.com") print('Before search================') # 打印当前页面title title = driver.title print(title) # 打印当前页面URL now_url = driver.current_url print(now_url) driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() sleep(1) print('After search================') # 再次打印当前页面title title = driver.title print(title) # 打印当前页面URL now_url = driver.current_url print(now_url) # 获取结果数目 user = driver.find_element_by_class_name('nums').text print(user) #关闭所有窗口 driver.quit() |
打印输出结果
Before search================ 百度一下,你就知道 https://www.baidu.com/ After search================ selenium_百度搜索 https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=selenium&rsv_pq=a1d51b980000e36e&rsv_t=a715IZaMpLd1w92I4LNUi7gKuOdlAz5McsHe%2FSLQeBZD44OUIPnjY%2B7pODM&rqlang=cn&rsv_enter=0&rsv_sug3=8&inputT=758&rsv_sug4=759 搜索工具 百度为您找到相关结果约7,170,000个 |
5.设置元素等待
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。