Selenium 测试框架
先打开cmd下载Selenium :
pip install -i https://pypi.douban.com/simple selenium
如果是用cmd 下载的:pip show selenium
使用该命令是否下载成功
或者直接在pycham IDE
在项目头上引入这个架包:from selenium import webdriver
安装浏览器驱动:
我这里用的是谷歌浏览器:
就下载谷歌的驱动,要注意看自己浏览器的版本号来下载相对应的驱动
下载完之后需要将该整个路径加入系统变量PATH中:
系统属性>环境变量>PATH>双击进去>把自己的路径加上去
我又遇到了好几次坑 :
这里我给填一下
创建一个文件然后:
driver = webdriver.Chrome()
点击运行看浏览器能不能启动起来
如果想打开百度就:
driver = webdriver.Chrome()
#打开百度
driver.get("http://baidu.com")
#关闭浏览器
driver.close()
但有时候可能刚开始会报错:找不到浏览器的驱动
解决方案:
直接在Chrome中添加该驱动路径,格式如下简单粗暴
driver = webdriver.Chrome('你下载路径')
处理完上面的这些我们就可以简单的写一下这个例子了
批量注册:
网站地址:http://tpshop-test.itheima.net
需求思路:
- 直接打开该网站的注册页面
- 填写手机号、验证码、密码点击注册
- 然后加一个循环实现批量注册
打开网站的注册页面的实现:
使用http://tpshop-test.itheima.net/Home/user/reg.html
可以直接打开注册界面
# 打开浏览器
driver = webdriver.Chrome()
url='http://tpshop-test.itheima.net/Home/user/reg.html'
# 打开该网站
driver.get(url)
运行到这一步点击运行就打开了该网站
然后填写信息:可以查看一下 find_element 这个方法
#通过ID标签查找定位
ID = "id"#通过xpath标签查找定位
XPATH = "xpath"#通过LINK_TEXT标签查找定位
LINK_TEXT = "link text"#通过PARTIAL_LINK_TEXT标签查找定位
PARTIAL_LINK_TEXT = "partial link text"#通过NAME标签查找定位
NAME = "name"#通过TAG_NAME标签查找定位
TAG_NAME = "tag name"#通过CLASS标签查找定位
CLASS_NAME = "class name"#通过CSS_SELECTOR标签查找定位
CSS_SELECTOR = "css selector"
我们用的是定位各个元素来实现点击和输入的这里用的是name和id两个元素
# 通过id 定位搜索框的位置输入 用户名
driver.find_element(By.ID, 'username').send_keys("13456789000")
# 通过 name 定位搜索框的位置输入
driver.find_element(By.NAME, 'verify_code').send_keys("8888")
# 通过id 定位搜索框的位置输入 密码
driver.find_element(By.ID, 'password').send_keys("123456")
# 通过id 定位搜索框的位置输入 密码
driver.find_element(By.ID, 'password2').send_keys("123456")
# 通过class 定位搜索按钮的位置
driver.find_element(By.CLASS_NAME, 'J_btn_agree').click()
# 间隔2秒
time.sleep(2)
# 关闭浏览器
driver.close()
这样我们就成功注册了一个账号
现在我们根据循环来实现一下批量注册,注册完然后生成一个 .txt 文件保存我们刚刚生成的账号和密码
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开浏览器
driver = webdriver.Chrome()
url='http://tpshop-test.itheima.net/Home/user/reg.html'
# 打开该网站
driver.get(url)
# 循环变量初始化
i = 1
j = 0
sum = []
# 生成账号的个数
while i<10:# 这个地方是改手机号格式的number="1340000022" + str(i)if (format(driver.current_url) != url):driver.find_element(By.LINK_TEXT,'安全退出').click()driver.find_element(By.LINK_TEXT,'注册').click()driver.refresh()time.sleep(3)# 通过id 定位搜索框的位置输入 用户名driver.find_element(By.ID, 'username').send_keys(number)sum.append(number)# 通过 name 定位搜索框的位置输入driver.find_element(By.NAME, 'verify_code').send_keys("8888")# 通过id 定位搜索框的位置输入 密码driver.find_element(By.ID, 'password').send_keys("123456")# 通过id 定位搜索框的位置输入 密码driver.find_element(By.ID, 'password2').send_keys("123456")# 通过class 定位搜索按钮的位置driver.find_element(By.CLASS_NAME, 'J_btn_agree').click()# 间隔2秒time.sleep(2)# 刷新界面driver.refresh()i += 1;j += 1;# 结束
driver.close()#生成一个txt文件保存这些账号
with open("username.txt","w") as f:f.write("用户名"+'\n')for sums in sum:f.write(sums+'\n')f.write("密码统一:123456")