PythonSelenium库的使⽤
(⼀)Selenium基础
⼊门教程:
1.Selenium简介
Selenium是⼀个⽤于测试⽹站的⾃动化测试⼯具,⽀持各种浏览器包括Chrome、Firefox、Safari等主流界⾯浏览器,同时也⽀持phantomJS⽆界⾯浏览器。
2.⽀持多种操作系统
如Windows、Linux、IOS、Android等。
3.安装Selenium
pip install Selenium
4.安装浏览器驱动
Selenium3.x调⽤浏览器必须有⼀个webdriver驱动⽂件
1. Chrome驱动⽂件下载:
2. Firefox驱动⽂件下载:
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种⽅式
定位⼀个元素定位多个元素含义
find_element_by_id find_elements_by_id通过元素id定位
find_element_by_name find_elements_by_name通过元素name定位
find_element_by_xpath find_elements_by_xpath通过xpath表达式定位
find_element_by_link_text find_elements_by_link_tex通过完整超链接定位
find_element_by_partial_link_text find_elements_by_partial_link_text通过部分链接定位
find_element_by_partial_link_text find_elements_by_partial_link_text通过部分链接定位
定位⼀个元素定位多个元素含义
find_element_by_tag_name find_elements_by_tag_name通过标签定位
find_element_by_class_name find_elements_by_class_name通过类名进⾏定位find_elements_by_css_selector find_elements_by_css_selector通过css选择器进⾏定位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']")
通过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="news.baidu" name="tj_trnews">新闻</a>
<a class="mnav" href="www.hao123" 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.控制浏览器操作的⼀些⽅法
⽅法说明
set_window_size()设置浏览器的⼤⼩
back()控制浏览器后退
forward()控制浏览器前进
refresh()刷新当前页⾯
clear()清除⽂本
send_keys (value)模拟按键输⼊
click()单击元素
submit()⽤于提交表单get_attribute(name)获取元素属性值
is_displayed()设置该元素是否⽤户可见
size返回元素的尺⼨
text获取元素的⽂本
实例演⽰
from selenium import webdriver
from time import sleep
#1.创建Chrome浏览器对象,这会在电脑上在打开⼀个浏览器窗⼝
browser = webdriver.Firefox(executable_path ="F:\GeckoDriver\geckodriver")
#2.通过浏览器向服务器发送URL请求
<("www.baidu/")
sleep(3)
#3.刷新浏览器
#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 类提供。
⽅法说明
ActionChains(driver)构造ActionChains对象
context_click()执⾏⿏标悬停操作
move_to_element(above)右击
double_click()双击
drag_and_drop()拖动
move_to_element(above)执⾏⿏标悬停操作
context_click()⽤于模拟⿏标右键操作, 在调⽤时需要指定元素定位perform()执⾏所有 ActionChains 中存储的⾏为,可以理解成是对整个操作的提交动作实例演⽰
from selenium import webdriver
#1.引⼊ ActionChains 类
from selenium.webdrivermon.action_chains import ActionChains
#1.创建Chrome浏览器对象,这会在电脑上在打开⼀个浏览器窗⼝
driver = webdriver.Firefox(executable_path ="F:\GeckoDriver\geckodriver")
<("www.baidu")
#2.定位到要悬停的元素
element= driver.find_element_by_link_text("设置")
#3.对定位到的元素执⾏⿏标悬停操作
ActionChains(driver).move_to_element(element).perform()
#到链接
elem1=driver.find_element_by_link_text("搜索设置")
elem1.click()
selenium怎么使用#通过元素选择器到id=sh_2,并点击设置
elem2=driver.find_element_by_id("sh_1")
elem2.click()
#保存设置
elem3=driver.find_element_by_class_name("prefpanelgo")
elem3.click()
3.键盘事件
Selenium中的Key模块为我们提供了模拟键盘按键的⽅法,那就是send_keys()⽅法。它不仅可以模拟键盘输⼊,也可以模拟键盘的操作。常⽤的键盘操作如下:
模拟键盘按键说明
send_keys(Keys.BACK_SPACE)删除键(BackSpace)
send_keys(Keys.SPACE)空格键(Space)
send_keys(Keys.TAB)制表键(Tab)
send_keys(Keys.ESCAPE)回退键(Esc)
send_keys(Keys.ENTER)回车键(Enter)
组合键的使⽤
模拟键盘按键说明
send_keys(Keys.CONTROL,‘a’)全选(Ctrl+A)
send_keys(Keys.CONTROL,‘c’)复制(Ctrl+C)
send_keys(Keys.CONTROL,‘x’)剪切(Ctrl+X)
send_keys(Keys.CONTROL,‘v’)粘贴(Ctrl+V)
send_keys(Keys.F1…Fn)键盘 F1…Fn
4.获取断⾔信息
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论