1、标题获取
title=driver.title
print(title)
2、获取页面url
url=driver.current_url
print(url)
3、控制浏览器
(1)页面回退
driver.back()
(2)页面前进
driver.forward()
(3)页面刷新
driver.refresh()
(4)控制浏览器尺寸大小
driver.set_window_size(1200,800)
(5)最大化浏览器
driver.maximize_window()
4、动作事件
(1)输入内容
el=find_element_by_css_selector('#su')
el.send_keys('python')
(2)清空输入的内容
el=find_element_by_css_selector('#su')
el.clear()
(3)点击页面内容
el=find_element_by_css_selector('#su')
el.click()
5、控件的属性获取
(1)获取控件尺寸大小
size=driver.find_element_by_css_selector('#kw').size
print(size)
返回一个字典,包括宽和高的值。
(2)获取控件的文本内容
text=driver.find_element_by_css_selector('#su').text
print(text)
(3)获取控件默认文案
place=driver.find_element_by_css_selector('#_allSearchKeyword').get_attribute('placeholder')
print(place)
(4)获取链接地址
href=driver.find_element_by_css_selector('#nav_trains').get_attribute('href')
print(href)
6、判断控件是否加载成功
href=driver.find_element_by_css_selector('#nav_trains').get_attribute('href')
print(href)
返回布尔值。
7、鼠标事件
需要导入:from selenium.webdriver.common.action_chains import ActionChains
(1)移动鼠标
ele=driver.find_element_by_css_selector('#nav_trains')
ActionChains(driver).move_to_element(ele).perform()
(2)右击鼠标
ele=driver.find_element_by_css_selector('#nav_trains')
ActionChains(driver).context_click(ele).perform()
(3)双击鼠标
ele=driver.find_element_by_css_selector('#nav_trains')
ActionChains(driver).double_click(ele).perform()
8、键盘事件
电脑键盘中的按键,主要针对输入框。
导入keys类;
from selenium.webdriver.common.keys import 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) | 键盘 F1 |
send_keys(Keys.F12) | 键盘 F12 |
9、三种时间等待方法
(1)默认等待时间
import time
time.sleep(10)#设置10秒,页面休眠10秒
(2)隐式等待时间
#要操作的控件用了几秒,就等待几秒
driver.implictity_wait(10)#设置最大等待时间
(3)显示等待时间
#导入
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
ele=WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located(By.CSS_SELECTOR,'#nav_trains'))
#最大等待时间为5秒,每隔0.5秒检测一次,直到页面加载出了后面定位的控件。
WebDriverWait一般与until和until_not配合使用,until_not是直到页面不存在这个控件。
10、多窗口切换
print(driver.window_handles)获取所有窗口信息,返回列表信息
print (driver.current_window_handle)获取当前窗体的焦点
driver.switch_to.window(driver.window_handles[1])窗体焦点切换,从0开始
driver.close()关闭当前焦点所在的窗体
driver.quit()关闭所有窗体
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys("123")
driver.find_element_by_id('su').click()
driver.maximize_window()
print(driver.window_handles)
time.sleep(5)
driver.find_element_by_partial_link_text("123网址").click()
time.sleep(5)
dd=driver.window_handles
print(driver.window_handles)# 获取所有窗口信息,返回列表信息
print(driver.current_window_handle)# 获取当前窗体的焦点
driver.switch_to_window(driver.window_handles[1])# 窗体焦点切换
time.sleep(5)
driver.close()#关闭当前焦点所在的窗体
11、弹出框操作
弹窗框分为3类:
只有文字和确定按钮;只有文字、确定和取消按钮;有文字、输入框和确定取消按钮。
driver.switch_to.alert.send_keys(“test”)给输入框输入内容
print(driver.switch_to.alert.text)获取弹出框文字
driver.switch_to.alert.accept()点击确定按钮
driver.switch_to.alert.dismiss()点击取消按钮
12、截图操作
driver.get_screenhot_as_file(“自己电脑的路径/图片名称.png”)建议用png格式
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.ctrip.com/")
time.sleep(5)
driver.get_screenshot_as_file("E:/test.png")
13、iframe控件操作
iframe控件:在html里面插入了一层html,插入的形式就是iframe。
定位方式:
(1)iframe有固定属性值的id或者name(不能为空或者是变化的),用driver.switch.to.frame(‘id或者name的属性值’);
driver.switch_to.frame('x-URS-iframe')
(2)先用xpath定位,再切换到iframe;
dd=driver.find_element_by_xpath("//div[@id='loginDiv']/iframe")
driver.switch_to.frame(dd)
driver.switch_to.parent_frame()#从子frame切回父frame
driver.switch_to.default_content()#切回主文档
14、select类处理下拉框
只能处理select标签。
导入类:from selenium.webdriver.support.select import Select
选择方式有三种:
(1)Select(el).select_by_visible_text(“选择内容”)通过可见的内容去选择
(2)Select(el).select_by_index(3)从0开始
(3)Select(el).select_by_value(5)直接选择value的值
15、时间选择类
from selenium import webdriver
import time
d=webdriver.Chrome()
d.implicitly_wait(5)
d.maximize_window()
d.get("https://www.ctrip.com/")
time.sleep(10)
ele=d.find_element_by_id("HD_CheckIn")#定位控件
ele.clear()
ele.send_keys("2020-08-17")#输入时间
eleout=d.find_element_by_id("HD_CheckOut")#定位控件
eleout.clear()
eleout.send_keys('2020-08-18')#输入时间
time.sleep(5)