我一定会努力的!

自动化测试

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("添加失败")
 


 

 

 

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() #关闭浏览器

posted on 2018-03-25 14:46  测试媛  阅读(169)  评论(0编辑  收藏  举报