2022/05/16学习内容
整理时间:2022/05/17
参考资料:https://www.bilibili.com/video/BV1NM4y1K73T?p=1&spm_id_from=333.851.header_right.history_list.click
selenium实例
7.浏览器的其它操作
manpi_browser.py
1)最大化
2)后退/前进/刷新
3)关闭当前页面
4)关闭浏览器
8.浏览器属性获取
manpi_browser.py
1)获取当前页面title
2)获取当前页面URL
# manpi_browser.py
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
# 获取浏览器对象 webdriver
# 因为没有设置环境变量 所以在这里需要"chromedriver.exe"
driver = webdriver.Chrome("chromedriver.exe")
# 准备一个网址
# https://www.baidu.com/
url = "https://www.baidu.com/"
driver.get(url)
# 最大化浏览器
driver.maximize_window()
# 设置浏览器大小
# driver.set_window_size(800, 600)
# time.sleep(1)
# 设置浏览器位置
# driver.set_window_position(200, 200)
# time.sleep(3)
# 浏览器后退/前进/刷新
# 获取当前页面title
print(driver.title)
# 获取当前页面URL
print(driver.current_url)
driver.find_element_by_xpath("//*[@id='kw']").send_keys("python")
driver.find_element_by_xpath("//*[@id='su']").click()
time.sleep(3)
# 获取当前页面title
print(driver.title)
# 获取当前页面URL
print(driver.current_url)
# 后退
driver.back()
time.sleep(3)
# 获取当前页面title
print(driver.title)
# 获取当前页面URL
print(driver.current_url)
# 前进
# driver.forward()
# time.sleep(3)
# 刷新
# driver.refresh()
# time.sleep(3)
# 关闭当前页面
# driver.find_element(By.LINK_TEXT, "hao123").click()
# time.sleep(3)
# driver.close()
# time.sleep(3)
# 回收资源-关闭浏览器
driver.quit()
9.页面等待
wait_element.py
1)强制
2)显式
3)隐式
# wait_element.py
from selenium import webdriver
import time
# 获取浏览器对象 webdriver
# 因为没有设置环境变量 所以在这里需要"chromedriver.exe"
driver = webdriver.Chrome("chromedriver.exe")
# 准备一个网址
# https://www.baidu.com/
url = "https://www.baidu.com/"
driver.get(url)
driver.find_element_by_xpath("//*[@id='kw']").send_keys("python")
driver.find_element_by_xpath("//*[@id='su']").click()
# 代码执行速度 远快于页面加载速度
# 在翻页或者加载新页面时需要进行页面等待
# 等待方式三种
# 强制--time.sleep()--时间太短or时间太长
# time.sleep(5)
# 显式--需要导入的包过多,难记
# from selenium.webdriver.common.by import By
# from selenium.webdriver.support import expected_conditions as EC
# from selenium.webdriver.support.wait import WebDriverWait
# 等到某元素加载完成 每隔0.5秒检查一次 最多等待5秒
# WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.ID, "aging-total-page")))
# driver.find_element_by_xpath("//*[@id='aging-total-page']").click()
# 隐式--没有明确说明等待的元素--推荐使用
driver.implicitly_wait(10)
driver.find_element_by_xpath("//*[@id='1']").click()
time.sleep(3)
# 回收资源-关闭浏览器
driver.quit()
10.模拟鼠标操作
manpi_mouse.py
步骤:
1)创建ActionChains对象
2)点击操作:右击、悬停、双击、拖动等
3)perform()执行操作
# manpi_mouse.py
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# 获取浏览器对象 webdriver
# 因为没有设置环境变量 所以在这里需要"chromedriver.exe"
driver = webdriver.Chrome("chromedriver.exe")
# 准备一个网址
# https://www.baidu.com/
url = "https://www.baidu.com/"
driver.get(url)
time.sleep(3)
chains = ActionChains(driver)
# 右击操作
# chains.context_click(driver.find_element_by_xpath("//*[@id='su']"))
# chains.perform()
# 悬停操作
# chains.move_to_element(driver.find_element_by_xpath("//*[@class='soutu-btn']"))
# chains.perform()
time.sleep(3)
# 回收资源
driver.quit()
11.模拟键盘操作
manpi_keyboard.py
# manpi_keyboard.py
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
# 获取浏览器对象 webdriver
# 因为没有设置环境变量 所以在这里需要"chromedriver.exe"
driver = webdriver.Chrome("chromedriver.exe")
# 准备一个网址
# https://www.baidu.com/
url = "https://www.baidu.com/"
driver.get(url)
el = driver.find_element_by_xpath("//*[@id='kw']")
# 输入python
el.send_keys("python")
time.sleep(3)
# 全选
el.send_keys(Keys.CONTROL, "a")
time.sleep(3)
# 删除
el.send_keys(Keys.BACKSPACE)
time.sleep(3)
# 输入java
el.send_keys("java")
time.sleep(3)
# 全选
el.send_keys(Keys.CONTROL, "a")
time.sleep(3)
# 复制
el.send_keys(Keys.CONTROL, "c")
time.sleep(3)
# 粘贴
el.send_keys(Keys.CONTROL, "v")
time.sleep(3)
# 回收资源
driver.quit()
from selenium.webdriver.support.select import Select
select = Select(driver.find_element_by_xpath("//*[@id='selectA']"))
time.sleep(3)
# 下拉框内容选择
# 方法一:通过索引
select.select_by_index(3)
time.sleep(3)
# 方法二:通过值
select.select_by_value("bj")
time.sleep(3)
# 方法三:通过文本
select.select_by_visible_text("A广东")
time.sleep(3)
12.下拉框处理
select.py
1)概念:下拉框是select元素。其中的每个选项是option
2)选中下拉框选项方式:索引、值、文本
# select.py
import time
from selenium.webdriver.support.select import Select
# select = Select(driver.find_element_by_xpath("//*[@id='selectA']"))
# time.sleep(3)
# 下拉框内容选择
# 方法一:通过索引
# select.select_by_index(3)
# time.sleep(3)
# 方法二:通过值
# select.select_by_value("bj")
# time.sleep(3)
# 方法三:通过文本
# select.select_by_visible_text("A广东")
# time.sleep(3)