zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Selenium自动化测试_实例

2023-03-14 09:51:10 时间

百度网盘链接:https://pan.baidu.com/s/15QSAGXk8F_eyqaw66KoHqg?pwd=1029
提取码:1029

一、例子1

业务步骤:

1. 访问项目首页 : http://101.34.221.219:8010/
2. 选择登录按钮 : a.text = '登录'
3. 点击登录按钮 : a.click()
4. 定位账号输入框 xpath = '/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[1]/input'
5. 输入账号
6. 定位密码输入框 xpath =
'/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[2]/div/input'
7. 输入密码
8. 定位登录按钮 xpah = '/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[3]/button'
9. 点击登录

 1 from selenium.webdriver.common.by import By
 2 from webdriver_helper import get_webdriver
 3 driver = get_webdriver() # 启动浏览器
 4 driver.get("http://101.34.221.219:8010/") # 1
 5 el = driver.find_element(By.LINK_TEXT, "登录") #
 6 el.click() # 3
 7 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[1]/input") # 4
 8 el.send_keys("beifan") # 5
 9 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[2]/div/input")
10 el.send_keys("123123") # 7
11 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[3]/button")
12 el.click()
13 input()
14 driver.quit() # 关闭浏览器

二、例子2

业务步骤:

1.登录
2.选择商品 : text = "vivo X5MAX L 移动4G 八核超薄大屏5.5吋双卡手机vivoX5max"
3.点击商品
4.选择立即购买 xpath = '/html/body/div[4]/div[2]/div[2]/div/div[3]/div[2]/button[1]'
5.处理弹窗
6.选择付款方式 xpath = '/html/body/div[4]/div/div[4]/ul/li[1]/span'
7.处理弹窗
8.选择提交订单按钮 xpath = '/html/body/div[4]/div/div[6]/div/form/div/button'
9.点击提交按钮
10.获取系统提示
11.断言 系统提示的内容是 ”操作成功“

 1 from selenium.webdriver.common.by import By
 2 from webdriver_helper import get_webdriver
 3 def get_msg():
 4     time.sleep(0.5) # 等待-0.5秒
 5     el = driver.find_element(By.XPATH, "//p[@class='prompt-msg']")
 6     return el.text
 7 def alert():
 8     time.sleep(2)
 9     driver.switch_to.alert.accept() # 弹窗点击确定
10 driver = get_webdriver() # 启动浏览器 11 driver.maximize_window() 12 driver.get("http://101.34.221.219:8010/") # 1 13 el = driver.find_element(By.LINK_TEXT, "登录") # 14 el.click() # 3 15 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[1]/input") # 4 16 el.send_keys("beifan") # 5 17 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[2]/div/input") 18 el.send_keys("123123") # 7 19 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[2]/div[2]/div/div/div[1]/form/div[3]/button") 20 el.click() 21 # 登录成功 22 msg = get_msg() 23 assert msg == "登录成功" 24 time.sleep(0.5) 25 driver.get("http://101.34.221.219:8010/") # 回到首页 26 el = driver.find_element(By.PARTIAL_LINK_TEXT, "vivo") # 选择商品 27 el.click() 28 # 窗口最新打开的切换 29 driver.switch_to.window(driver.window_handles[-1]) 30 time.sleep(0.5) 31 el = driver.find_element(By.XPATH, "/html/body/div[4]/div[2]/div[2]/div/div[3]/div[2]/button[1]") 32 el.click() # 立即购买 33 alert() # 处理弹出 34 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[4]/ul/li[1]/span") 35 el.click() # 付款方式 36 alert() # 处理弹窗 37 el = driver.find_element(By.XPATH,"/html/body/div[4]/div/div[6]/div/form/div/button") 38 el.click() # 提交等待 39 msg = get_msg() # 获取系统提示 40 assert msg == "操作成功" 41 input() 42 driver.quit() # 关闭浏览器

三、例子3

 1 # 打开清华大学出版社官网,搜索关键字python,将首页的书本名和价格提取出来,并形成一个表格
 2 from selenium import webdriver
 3 from selenium.webdriver.common.by import By
 4 from selenium.webdriver.common.keys import Keys
 5 from bs4 import BeautifulSoup
 6 import pandas as pd
 7 
 8 driver = webdriver.Chrome()     # 生成一个浏览器对象
 9 url = "http://www.tup.tsinghua.edu.cn/index.html"      # 设置url
10 driver.get(url)     # 将url传给driver对象
11 
12 input_tag = driver.find_element(By.CSS_SELECTOR, '#input_key')  # 使用selector来定位输入框
13 input_tag.send_keys("python")   # 往输入框中传递值
14 input_tag.send_keys(Keys.ENTER)     # 模拟键盘的回车键
15 
16 windows = driver.window_handles     # 将目前已经打开的两个网页地址保存在windows列表中
17 driver.switch_to.window(windows[1])     # 将driver关联的网页切换到刚刚新打开的页面
18 
19 html = driver.page_source       # 获取driver当前页面的网页源码,存储在html变量中
20 soup = BeautifulSoup(html, 'lxml')      # 新建一个BeautifulSoup对象,以lxml的形式解析html源码,并存到soup变量中
21 book_name = [i.text for i in soup.select('#csproduct a span')]  # 从soup中提取书名
22 editor = [i.text for i in soup.select('#csproduct a p')[::3]]   # 从soup中提取作者姓名
23 p = [i.text for i in soup.select('#csproduct a p')[2::3]]   # 从soup中提取书本价格
24 price = []  # 书本价格列表
25 for i in p: # 对于每一个在i,i的格式都形如“价格:83”,“价格:90“。为了后面方便生成表格,要去除数字以外的字符
26     i = i.replace('定价:', '')    # 将每个元素中的‘定价:’删除
27     price.append(i)     # 将每一个修改过的i,加入提前准备的price列表中
28 
29 table = pd.DataFrame({'书名': book_name, '价格': price})    # 生成两列的表格,列名为书名和价格
30 print(table)

 

 

 

 和其光,同其尘,挫其锐,解其纷。