自动化测试
80改为8080 (2个地方)
443 改为4433 (3 个地方)
# 将下面的文件拷贝到项目文件夹pyExamples下,并改名为firefoxpro:
# win7:C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\p04qdf2w.default
# 这个文件是firefox的配置项存放目录,创建firefox时指定加载这个配置信息
import time
from selenium import webdriver #导入webdriver 功能库
# 去掉firefox的各种插件及关闭各种更新
# 将下面的文件拷贝到项目文件夹下:
# win7:C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\p04qdf2w.default
# 这个文件是firefox的配置项存放目录,创建firefox时指定加载这个配置信息
# 如果不指定配置文件夹,系统将按照火狐默认配置信息
f = webdriver.FirefoxProfile("firefoxpro") #加载火狐的配置信息
b = webdriver.Firefox() #打开一个空白的火狐
b.get("https://www.baidu.com/") #打开百度页面
elem = b.find_element_by_id("kw")
elem.send_keys("selenium")
elem = b.find_element_by_id("su")
elem.click()
# -*- coding: utf-8 -*-
import time
from selenium import webdriver #导入webdriver 功能库
f = webdriver.FirefoxProfile("firefoxpro") #加载火狐的配置信息
b = webdriver.Firefox(f) #打开一个空白的火狐
b.implicitly_wait(10) #隐式等待10s,直到一个页面被完全加载
b.get("http://localhost:8090/ranzhi25/www") #打开然之首页
elem = b.find_element_by_name("account")
elem.send_keys("abcdef")
time.sleep(1)
elem.clear() # 清除原内容
b.find_element_by_class_name("form-control").send_keys("root") # 如果有多个满足条件,默认返回第一个(用户名输入框),输入正确的用户名
elems = b.find_elements_by_class_name("form-control") # find_elements,这里返回一个数组元素(第2个)
elems[1].send_keys("111111") #数组中第二个是密码输入框,输入密码
# b.find_element_by_id("submit").click() #点击登录
#find_element_by_tag_name
tags =b.find_elements_by_tag_name("input")
# 从tags 列表的五个元素重找出submit按钮
#元素变量.get_attribute("属性名"):在一个元素上获取指定属性名的属性值
for t in tags:
if t.get_attribute("value") == "登录":
t.click()
break #找到了就点击被中断循环
time.sleep(2)
# 2345 浏览器/谷歌 - F12 -- 找到你要定位元素HTML代码处--右键--copy--xpath
b.find_element_by_xpath('//*[@id="s-task-1"]/button').click()
b.find_element_by_xpath('//li[@id="s-task-1"]/button').click()
# -*- coding: utf-8 -*-
import time
from selenium import webdriver #导入webdriver 功能库
from selenium.webdriver.support.select import Select
f = webdriver.FirefoxProfile("firefoxpro") #加载火狐的配置信息
b = webdriver.Firefox(f) #打开一个空白的火狐
b.implicitly_wait(10) #隐式等待10s,直到一个页面被完全加载
b.get("http://localhost:8090/ranzhi25/www") #打开然之首页
elem = b.find_element_by_name("account")
elem.send_keys("abcdef")
time.sleep(1)
elem.clear() # 清除原内容
b.find_element_by_class_name("form-control").send_keys("root") # 如果有多个满足条件,默认返回第一个(用户名输入框),输入正确的用户名
elems = b.find_elements_by_class_name("form-control") # find_elements,这里返回一个数组元素(第2个)
elems[1].send_keys("111111") #数组中第二个是密码输入框,输入密码
# b.find_element_by_id("submit").click() #点击登录
#find_element_by_tag_name
tags =b.find_elements_by_tag_name("input")
# 从tags 列表的五个元素重找出submit按钮
#元素变量.get_attribute("属性名"):在一个元素上获取指定属性名的属性值
for t in tags:
if t.get_attribute("value") == "登录":
t.click()
break #找到了就点击被中断循环
#接下来再登陆成功页面点击“客户管理”图标按钮
#b.find_element_by_xpath('//*[@id="s-menu-1"]/button').click()
b.find_element_by_xpath('//li[@id="s-menu-1"]/button').click()
#先切换到CRM 内容所在的iFrame 中去
b.switch_to.frame("iframe-1") #第一种 :如果iFrame 有ID
#f = b.get_element_by_xxx("xxx")#第二种 :如果iFrame 没有ID,可以先定位到这个iFrame 节点
#b.switch_to.frame(f) #然后切换到这个iFrame 节点
# find_element_by_link_text 根据链接的文字定位
b.find_element_by_link_text("产品").click() #点击 产品 超链接
#点击“添加产品”
#find_element_by_partial_link_text 根据超链接的部分文件定位
b.find_element_by_partial_link_text("加产").click() #点击 添加产品 超链接
time.sleep(2)
#下面开始添加产品信息
b.find_element_by_id("name").send_keys("2018自动化产品")
#选择产品线
listEle=b.find_element_by_id("line")
selEle = Select(listEle)
selEle.select_by_index(1) #51测试产品线 选择根据索引顺序
selEle.select_by_value("ee") # 52测试产品线 选择根据列表值
selEle.select_by_visible_text("51测试产品线") # 下拉框的文本 选择根据列表的可见文字
#选择类型
listEle=b.find_element_by_id("type") #51测试产品线 选择根据索引顺序
selEle = Select(listEle)
selEle.select_by_visible_text("服务类")
# 选择状态
listEle=b.find_element_by_id("status")
selEle = Select(listEle)
selEle.select_by_visible_text("正常")
b.find_element_by_id("submit").click()
#接下来验证一下产品有没有出现在列表的第一行
#节点.text : 获取指定节点下的所有文字内容
#用css_selector 定位表格中第一行的 产品名称
pName1= b.find_element_by_css_selector("#productList > tbody > tr:nth-child(1) > td.text-left").text
#pName2 = b.find_element_by_xpath('//*[@id="productList"]/tbody/tr[1]/td[2]').text
#用xpath 定位表格中第一行的 产品名称
pName2 = b.find_element_by_xpath('//table[@id="productList"]/tbody/tr[1]/td[2]').text
if pName1 == "2018自动化产品":
print("添加成功")
else:
print("添加失败")
![](data:image/png;base64,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)
time.sleep VS implicitly_wait
# -*- coding: utf-8 -*-
import time
from selenium import webdriver #导入webdriver 功能库
f = webdriver.FirefoxProfile("firefoxpro") #加载火狐的配置信息
b = webdriver.Firefox(f) #打开一个空白的火狐
b.implicitly_wait(10) #隐式等待10s,直到一个页面被完全加载
b.get("http://localhost:8090/ranzhi25/www") #打开然之首页
b.find_element_by_id("account").send_keys("root")
b.find_element_by_id("password").send_keys("111111")
b.find_element_by_id("submit").click()
time.sleep(2) #暂停2秒钟
#由于页面标题的改变是JS实现的,因此要人为等待2s
#js实现,所以不能用隐式等待 js 局部刷新 ajax页面没刷新,但数据在刷新
#使用页面标题判断是否登录成功
if b.title == "然之协同": #判断当前浏览器标题是否是期望值
print("登录成功")
else:
print("登录失败")
#run 出错,debug 没问题 在出错代码前面加sleep
b.save_screenshot("C:\\seleniumScreenshot.jpg")
b.close() #关闭当前浏览器页面
b.quit() #关闭浏览器