需求背景
客户是做偏前端开发的,日常工作需要进行web应用测试,模拟人类浏览器的行为;
需要一些基础的技术栈:
Python
HTML
CSS
JavaScript
以上是客户环境↑
=====================================================================
安装过记录
1.安装方式-Seleium安装:
在PyCharm终端或window命令窗口输入以下命令
#查看已安装的Python包(可跳过)
pip list
#安装selenium 4.3.0
pip install selenium==4.3.0
注意:一定要确保python环境变量配置正确 ,使用命令:
##卸载Selenium命令
pip uninstall selenium
配置浏览器驱动
Unable to Locate Driver Error | Selenium
将下载好的浏览器驱动放置在Python安装目录下(即Python环境变量配置目录)
然后验证一下
import time
# 导入selenium包
from selenium import webdriver
# 打开Firefox浏览器
browser = webdriver.Firefox()
# 停留三秒
time.sleep(3)
# 关闭浏览器
browser.quit()
执行后,浏览器能被打开,证明配置ok!
# 打开Chome浏览器
browser = webdriver.Chrome()
# 关闭浏览器
browser.quit()
# 打开Edge浏览器
browser = webdriver.Edge()
# 关闭浏览器
browser.quit()
客户chrom打开成功!
整体环境配置完成
随机选择几个执行操作测试
鼠标操作
鼠标操作涉及到的类:ActionChains类
move_to_element(X)鼠标悬停,X代表定位到的标签
double_click(X)双击
context_click(X)右击
perform() 执行所有存储在ActionChains()类中的行为,做最终的提交
不管执行哪个方法,最后都要调用perform()方法,将操作呈现出来。
from time import sleep
# 导入selenium包
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("https://www.csdn.net")
sleep(2)
# 创建ActionChains对象
action = ActionChains(browser)
# 定位标签并将鼠标移入,并呈现移入结果
tag = browser.find_element(By.XPATH, '//div/a[@class="btn-write-new"]')
action.move_to_element(tag).perform()
sleep(3)
tag = browser.find_element(By.CSS_SELECTOR, '.blog-nav-box')
action.move_to_element(tag).perform()
sleep(2)
browser.find_element(By.LINK_TEXT, "数学").click()
# 关闭浏览器
sleep(2)
browser.quit()
JS代码执行
- execute_script(X)执行JS代码,X代表要执行的JS代码
from time import sleep
# 导入selenium包
from selenium import webdriver
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("https://www.csdn.net")
sleep(2)
# 执行js弹窗代码
browser.execute_script("alert('这是js弹窗代码')")
sleep(2)
browser.switch_to.alert.accept()
sleep(2)
# 执行js窗口滚动条代码
browser.execute_script("window.scrollTo(20,1000)")
sleep(2)
# 打开多个窗口
browser.execute_script("window.open('https://www.baidu.com')")
browser.execute_script("window.open('https://www.bing.com')")
sleep(2)
browser.quit()
运行正常,交付ok
主页有更多案例,欢迎浏览留言,有需求可私信哦~