软测05/16记录一下学习过程|selenium实例

这篇博客记录了2022/05/16的学习内容,主要聚焦于Selenium的使用,包括浏览器的 maximize、back/forward/refresh、close 操作,页面属性获取如title和URL,页面等待技术,模拟鼠标点击、键盘输入以及处理下拉框的方法。提供了具体的Python代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

浏览器其他操作/属性获取+页面等待+模拟鼠标
模拟键盘+下拉款

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值