一、selenium定位
1、文本框(text)、密码(password)、按钮(button)、输入(send_keys)、点击(click)
案例:
http://cms.duoceshi.cn/manage/login.do 环境
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("http://cms.duoceshi.cn/manage/login.do") #通过对象打开浏览
dx.maximize_window() #窗口最大化
dx.implicitly_wait(2) #时间等待2s
dx.find_element_by_id("userAccount").send_keys("admin") #输入账号
dx.implicitly_wait(2)#时间等待2s
dx.find_element_by_id("loginPwd").send_keys("123456") #输入密码
dx.implicitly_wait(2) ##时间等待2s
dx.find_element_by_id("loginBtn").click() #点击按钮
python之selenium
一、链接、隐藏框
1、链接定位
查看a标签
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
dx.find_element_by_link_text("hao123").click() #点击链接
2、隐藏框
(1)更多
from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
wz=dx.find_element_by_link_text("更多") #更多位置
ActionChains(dx).move_to_element(wz).perform() #移动元素
sleep(2)
dx.find_element_by_link_text("学术").click()
(2)设置
案例1
from selenium import webdriver #导入selenium第三方库中webdriver
from time import *
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
dx.maximize_window()
dx.find_element_by_id("s-usersetting-top").click()
sleep(2)
dx.find_element_by_link_text("隐私设置").click()
案例2:
from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
wz=dx.find_element_by_id("s-usersetting-top")
ActionChains(dx).move_to_element(wz).perform()
sleep(2)
dx.find_element_by_link_text("隐私设置").click()
一、获取文本、if断言、assert语句断言、获取抬头
1、获取文本
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
wb=dx.find_element_by_link_text("登录").text 一种通过link_text方法
wb=dx.find_element_by_id("s-top-loginbtn").text 一种通过id方法
print(wb)
2、通过if语句断言
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
wb=dx.find_element_by_link_text("登录").text
wb=dx.find_element_by_id("s-top-loginbtn").text
if wb=="登录":
print("ok")
else:
print("no")
3、通过assert语句断言
如果assert语句通过,后面语句继续运行
如果assert语句不通过,直接报错
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
wb=dx.find_element_by_link_text("登录").text
wb=dx.find_element_by_id("s-top-loginbtn").text
assert wb=="登录"
print("-----------")
print( "ok")
4、获取抬头
title
(1)获取当个页面的title
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
print(dx.title) #百度一下,你就知道
(2)存在覆盖的场景显示title
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
print(dx.title) #百度一下,你就知道
dx.get("https://www.jd.com/") #通过对象打开浏览
print(dx.title)#京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
(3)重开窗口显示title
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
print(dx.title) #百度一下,你就知道
dx.execute_script("window.open('https://www.jd.com/')")
print(dx.title)#京东(JD.COM)-百度一下,你就知道
一、切换窗口
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
print(dx.title) #百度一下,你就知道
print(dx.current_window_handle)#获取当前窗口的句柄
dx.execute_script("window.open('https://www.jd.com/')")
print(dx.title)#京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
print(dx.current_window_handle)#获取当前窗口的句柄
print(dx.window_handles) #获取所有窗口句柄
2、通过句柄切换拆窗口(两个窗口的索引0,1)
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
print(dx.title) #百度一下,你就知道
print(dx.current_window_handle)#获取当前窗口的句柄
dx.execute_script("window.open('https://www.jd.com/')")
print(dx.title)#京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
print(dx.current_window_handle)#获取当前窗口的句柄
sy=dx.window_handles #获取所有窗口句柄
dx.switch_to.window(sy[1]) #通过索引切换句柄,切换窗口
print(dx.title)
dx.find_element_by_link_text("我的订单").click()
2、通过句柄切换拆窗口(三个窗口的索引0,2,1)
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
print(dx.title) #百度一下,你就知道
print(dx.current_window_handle)#获取当前窗口的句柄
dx.execute_script("window.open('https://www.jd.com/')")
print(dx.title)#京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
print(dx.current_window_handle)#获取当前窗口的句柄
dx.execute_script("window.open('https://www.hao123.com/')")
print(dx.title)
print(dx.current_window_handle)#获取当前窗口的句柄
sy=dx.window_handles #获取所有窗口句柄
dx.switch_to.window(sy[2])
print(dx.title)
dx.find_element_by_link_text("我的订单").click()
3、通过for循环来切换窗口
from selenium import webdriver #导入selenium第三方库中webdriver
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/") #通过对象打开浏览
print(dx.title) #百度一下,你就知道
print(dx.current_window_handle)#获取当前窗口的句柄
dx.execute_script("window.open('https://www.jd.com/')")
print(dx.title)#京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
print(dx.current_window_handle)#获取当前窗口的句柄
dx.execute_script("window.open('https://www.hao123.com/')")
print(dx.title)
print(dx.current_window_handle)#获取当前窗口的句柄
sy=dx.window_handles #获取所有窗口句柄
for i in sy: #遍历所有句柄
dx.switch_to.window(i) #切换句柄
if "京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!" in dx.title:
break
dx.find_element_by_link_text("我的订单").click()