Пример #1
0
class ZenTaoBug():

    # 定位登录
    loc_ad = ("id", "account")
    loc_pwd = ("xpath",
               '//*[@id="login-form"]/form/table/tbody/tr[2]/td/input')
    loc_click = ("id", "submit")
    # 定位添加bug
    loc_test = ("link text", "测试")
    loc_bug = ("link text", "Bug")
    loc_add_bug = ("xpath", '//*[@id="createActionMenu"]/a')
    loc_version = ("xpath", '//*[@id="openedBuild_chosen"]/ul')
    loc_version_trunk = ("xpath", '//*[@id="openedBuild_chosen"]/div/ul/li')
    loc_title = ("id", "title")
    # 切换iframe
    loc_body = ("class name", 'article-content')
    loc_save = ("id", "submit")
    # 定位标题
    loc_ad_title = ("xpath", '//*[@id="bugList"]/tbody/tr[1]/td[4]/a')

    def __init__(self, driver):
        self.driver = driver
        self.zentao = Base(self.driver)

    # 点击登录
    def login(self, user="******", pwd="123456"):
        self.driver.get("http://127.0.0.1:82/zentao/user-login.html")
        self.zentao.sendKeys(self.loc_ad, user)
        self.zentao.sendKeys(self.loc_pwd, pwd)
        self.zentao.click(self.loc_click)

    def addBug(self, _title="ceshi", _text="i love tingting"):
        self.zentao.click(self.loc_test)
        self.zentao.click(self.loc_bug)
        self.zentao.click(self.loc_add_bug)
        self.zentao.click(self.loc_version)
        self.zentao.click(self.loc_version_trunk)
        self.zentao.sendKeys(self.loc_title, _title)
        # 切换iframe
        loc_iframe = ("class name", "ke-edit-iframe")
        frame = self.zentao.findElement(loc_iframe)
        self.driver.switch_to.frame(frame)
        self.zentao.sendKeys(self.loc_body, _text)
        self.driver.switch_to.default_content()
        js = "window.scrollTo(0,document.body.scrollHeight)"
        self.driver.execute_script(js)
        self.zentao.click(self.loc_save)

        # 判断是否添加成功
    def is_add_sucess(self, _text):
        return self.zentao._is_text_in_element(self.loc_ad_title, _text)
Пример #2
0
class LoginPage():
#初始化登录页面中用到的参数,对base进行实例化
    def __init__(self,driver):
        #对导入的base进行实例化
        self.base = Base(driver)
        self.driver = driver
        #定位用户名元素的参数
        self.loc_user = ("id","txtUserName")
        #定位密码元素的参数
        self.loc_pwd = ("id","txtPassWord")
        #定位登录按钮元素的参数
        self.button = ("id","btnSubmit")
        #定位登录成功后首页右上角出现的用户名
        self.home_page_username = ("id","userName")

#定义输入用户名方法
    def input_username(self,user_name):
        self.user_name = user_name
        self.base.send_key(self.loc_user,self.user_name)

#定义输入密码方法
    def input_pwd(self,user_pwd):
        self.user_pwd = user_pwd
        self.base.send_key(self.loc_pwd,self.user_pwd)

#定义点击登录方法
    def click_submit(self):
        self.base.click(self.button)

#获取登录后右上角的用户名
    def get_login_username(self):
        try:
            ele = self.base.findElement(self.home_page_username)
            username = ele.text
            return username
        except:
            return ""

#判断元素是否包含文本
    def is_login_sucess(self,text):
        result = self.base.is_text_in_element(self.home_page_username,text)
        return result

#判断是否存在alert弹窗,有的话就关闭,没有就忽略
    def is_alert_exist(self):
        result = self.base.is_alert_exist()
        if result:
            result.accept()
        else:
            pass
Пример #3
0
from selenium import webdriver

from common.base import Base

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
loc1 = ("link text", "新闻")
zen = Base(driver)
s1 = zen.is_title("百度一下,你就知道")
print(s1)
s2 = zen.is_title_contions("百度")
print(s2)
s3 = zen.is_text_in_element(loc1, "新闻")
print(s3)
s4 = zen.findElement(loc1).text
print(s4)
driver.quit()
Пример #4
0
class Mgsqgl():
    def __init__(self, driver):
        self.driver = driver
        self.base = Base(self.driver)
        #定位用户名元素的参数
        self.loc_user = ("id", "txtUserName")
        #定位密码元素的参数
        self.loc_pwd = ("id", "txtPassWord")
        #定位登录按钮元素的参数
        self.button = ("id", "btnSubmit")
        #首页导航栏右箭头
        self.nav_left = ("css selector", "#nav_left>img")
        #定位导航菜单敏感时期管理
        self.menu_mgsqgl = ("css selector", ".nav-minganshiqi-n>a>cite>p")
        #新增敏感时期按钮
        self.loc_add_mgsq = ("id", "btnAddMgsq")
        #新增敏感时期:名称
        self.loc_add_mgsq_mc = ("id", "mc")
        #新增敏感时期:有效期始
        self.loc_add_mgsq_yxqs = ("id", "yxqs")
        #新增敏感时期:有效期止
        self.loc_add_mgsq_yxqz = ("id", "yxqz")
        #日历选择框中:现在
        self.loc_date_now = ('css selector', '.laydate-btns-now')
        #日历选择框中:4-30
        self.loc_date_other = (
            'xpath',
            ".//*[@id='layui-laydate2']/div[1]/div[2]/table/tbody/tr[5]/td[5]")
        #敏感时期类型:
        self.loc_mgsqlx = ("css selector", ".layui-input.layui-unselect")
        #敏感时期类型:普通涉访人员
        self.loc_ptsfry = (
            "css selector",
            ".layui-unselect.layui-form-select.layui-form-selected>dl:nth-child(2)"
        )
        #敏感时期弹窗:保存按钮
        self.loc_save = ("xpath", "html/body/div[1]/form/div[5]/a")
        #敏感时期弹窗:关闭按钮
        self.loc_close = ("xpath", "html/body/div[1]/form/div[5]/button")
        #是否设置预警值弹窗:确定按钮
        self.loc_yj_confirm = ("xpath", ".//*[@id='layui-layer3']/div[3]/a[1]")
        #是否设置预警值弹窗:取消按钮
        self.loc_yj_cancel = ("xpath", ".//*[@id='layui-layer3']/div[3]/a[2]")
        #设置预警值弹窗窗口id,用于判断这个窗口是否打开了
        self.loc_yj_mc = ("id", "mc")
        #-------------------预警设置页面------------------------
        #设置预警值:蓝色预警
        self.loc_yjfz_lsyj = ("xpath", ".//*[@id='yjFz']/li[1]/div/input")
        #设置预警值:提交按钮
        self.loc_szyjz_submit = ("css selector", ".submit_btn")
        #提交提示   /删除成功提示共用
        self.submit_tips = ("css selector",
                            ".layui-layer-content.layui-layer-padding")
        #点击列表页的查看按钮
        self.loc_list_view = '''document.getElementsByTagName('iframe')[1].contentWindow.document.
        body.getElementsByTagName('tbody')[0].getElementsByTagName('a')[0].click()'''
        #------------------查看弹窗 ------------------
        #title  与查看报告共用
        self.loc_title = ("css selector", ".layui-layer-title")
        #-----------------编辑弹窗--------------------
        self.loc_list_edit = '''document.getElementsByTagName('iframe')[1].contentWindow.document.
        body.getElementsByTagName('tbody')[0].getElementsByTagName('a')[1].click()'''
        #---编辑弹窗:提交按钮
        self.loc_edit_submit = ("css selector", ".layui-btn")
        #----------------人员导入---------------
        self.loc_list_import = '''document.getElementsByTagName('iframe')[1].contentWindow.document.
        body.getElementsByTagName('tbody')[0].getElementsByTagName('a')[2].click()'''
        #-人员导入:管控来源
        self.loc_gkly = ("css selector", ".layui-unselect.layui-form-select")
        # 管控来源下拉选项:
        self.loc_gabjb = ("css selector",
                          ".layui-anim.layui-anim-upbit:nth-child(2)")
        #导入文件
        self.loc_file = ("id", "file")
        #提交按钮
        self.loc_import_submit = ("css selector", ".layui-btn")
        #导入结果提示框标题
        self.loc_import_mess_title = ("css selector", ".layui-layer-title")
        #-----------列表:删除按钮----
        self.loc_list_delete = '''document.getElementsByTagName('iframe')[1].contentWindow.document.
        body.getElementsByTagName('tbody')[0].getElementsByTagName('a')[3].click()'''
        #删除提示框:确定删除按钮
        self.loc_dele_butn = ("css selector", ".layui-layer-btn0")
        #-----------列表:查看报告按钮-----
        self.loc_view_report = '''document.getElementsByTagName('iframe')[1].contentWindow.document.
        body.getElementsByTagName('tbody')[0].getElementsByTagName('a')[4].click()'''

#登录帐号

    def login(self, username, passwd):
        self.base.send_key(self.loc_user, username)
        self.base.send_key(self.loc_pwd, passwd)
        self.base.click(self.button)

#进入敏感时间管理列表页,“新增敏感时期”

    def mgsqgl_list(self):
        self.base.click(self.nav_left)
        time.sleep(2)
        self.base.click(self.menu_mgsqgl)
        self.driver.switch_to.frame(1)
        time.sleep(2)
        self.base.click(self.loc_add_mgsq)
        time.sleep(2)
        self.driver.switch_to.default_content()
        self.driver.switch_to.frame("layui-layer-iframe2")
        time.sleep(2)
        self.base.send_key(self.loc_add_mgsq_mc, "国庆节")
        self.base.click(self.loc_add_mgsq_yxqs)
        self.base.click(self.loc_date_now)
        self.base.click(self.loc_add_mgsq_yxqz)
        self.base.click(self.loc_date_other)
        self.base.click(self.loc_mgsqlx)
        self.base.click(self.loc_ptsfry)

#新增敏感时期后,点击“保存”

    def mgsqgl_save(self):
        self.base.click(self.loc_save)
        self.driver.switch_to.default_content()
        self.driver.switch_to.frame(1)
        time.sleep(2)

#新增敏感时期后,点击“关闭”

    def mgsqgl_close(self):
        self.base.click(self.loc_close)
        self.driver.switch_to.default_content()
        self.driver.switch_to.frame(1)

#是否出现“是否设置预警值”的弹窗

    def is_set_early_warn(self):
        try:
            ele = self.base.findElement(self.loc_yj_confirm)
            return True
        except:
            return False

#将新增敏感时期保存后,弹出是否进行预警值设置的点击按钮单独提出来,便于后续分别调用
#点击取消按钮

    def mgsqgl_qxyj(self):
        self.base.click(self.loc_yj_cancel)

#点击确定按钮

    def mgsqgl_jryj(self):
        self.base.click(self.loc_yj_confirm)

#是否进入设置预警值的页面,用于判断新增敏感时期并保存后是点击确定成功进入了预警值设置,还是点击取消成功未进入预警值设置

    def is_open_early_warn(self):
        try:
            self.driver.switch_to.default_content()
            self.driver.switch_to.frame(2)
            ele = self.base.findElement(self.loc_yj_mc)
            return True
        except:
            return False

#设置预警值,修改了蓝色预警值,提交

    def szyjz(self, value):
        self.base.clear(self.loc_yjfz_lsyj)
        self.base.send_key(self.loc_yjfz_lsyj, value)
        self.base.click(self.loc_szyjz_submit)
        self.driver.switch_to.default_content()

#是否提交成功  此方法未用上,因为提示太短,获取不到

    def is_submit_success(self, text):
        result = self.base.is_text_in_element(self.submit_tips, text)
        return result

#点击列表上的查看按钮

    def click_view(self):
        self.base.click(self.nav_left)
        time.sleep(2)
        self.base.click(self.menu_mgsqgl)
        time.sleep(2)
        self.driver.execute_script(self.loc_list_view)
        self.driver.switch_to.default_content()

#点击列表上的编辑按钮

    def click_edit(self):
        self.base.click(self.nav_left)
        time.sleep(2)
        self.base.click(self.menu_mgsqgl)
        time.sleep(2)
        self.driver.execute_script(self.loc_list_edit)
        self.driver.switch_to.default_content()
        self.driver.switch_to.frame(2)

#判断弹窗的标题文本是否包含“查看”,返回True或False

    def get_title(self, text):
        result = self.base.is_text_in_element(self.loc_title, text)
        return result
#编辑弹窗的标题文本获取为空,所以使用获取窗口中的“提交按钮”文本作为判断

    def get_submit_text(self, text):
        result = self.base.is_text_in_element(self.loc_edit_submit, text)
        return result

#人员导入操作

    def import_mem(self):
        self.base.click(self.nav_left)
        time.sleep(2)
        self.base.click(self.menu_mgsqgl)
        time.sleep(2)
        self.driver.execute_script(self.loc_list_import)
        self.driver.switch_to.frame(2)
        self.base.click(self.loc_gkly)
        self.base.click(self.loc_gabjb)
        self.base.send_key(self.loc_file,
                           r"C:\Users\Ling\Downloads\lksfmb.xlsx")
        self.base.click(self.loc_import_submit)
        self.driver.switch_to.default_content()

    #获取导入结果
    def get_import_result(self, text):
        result = self.base.is_text_in_element(self.loc_import_mess_title, text)
        return result


#删除敏感时期

    def delete(self):
        self.base.click(self.nav_left)
        time.sleep(2)
        self.base.click(self.menu_mgsqgl)
        time.sleep(2)
        self.driver.execute_script(self.loc_list_delete)
        self.driver.switch_to.frame(1)
        self.base.click(self.loc_dele_butn)
        self.driver.switch_to.default_content()

    #删除敏感时期成功
    def del_success(self, text):
        result = self.base.is_text_in_element(self.submit_tips, text)
        return result

    #查看报告
    def view_report(self):
        self.base.click(self.nav_left)
        time.sleep(2)
        self.base.click(self.menu_mgsqgl)
        time.sleep(2)
        self.driver.execute_script(self.loc_view_report)
        self.driver.switch_to.default_content()
Пример #5
0
# @Author  : 周博远
# @Email   : [email protected]
# @File    : t4.py
# @Software: PyCharm
'''
    radio
'''

from common.base import Base
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select

driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
baidu = Base(driver)

loc1 = ("link text", "设置")
mouse = baidu.findElement(loc1)
ActionChains(driver).move_to_element(mouse).perform()

loc2 = ("link text", "搜索设置")
mouse1 = baidu.click(loc2)

loc3 = ("id", "s1_1")
loc4 = ("id", "s1_2")

r1 = baidu.isSelected(loc3)
print(r1)
r2 = baidu.isSelected(loc4)
print(r2)
Пример #6
0
# 判断元素是隐藏还是显示的
from selenium import webdriver
from common.base import Base


driver = webdriver.Firefox()
driver.get("http://boss.xjxueche.com/")
xiaojia = Base(driver)

loc1 = ("id","userName")

# 判断元素
a = xiaojia.findElement(loc1)
r = a.is_displayed()
print(r)
# True:显示的,  False:隐藏的,   元素不存在报错




# is_selccted()判断是够被选中,返回True和False(针对下拉框)








Пример #7
0
# @Software: PyCharm
'''
    is_displayed()---判断元素是否显示

'''

from common.base import Base
from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://127.0.0.1:81/zentao/user-login-L3plbnRhby8=.html")
zentao = Base(driver)
loc1 = ("id", "account")
loc2 = ("name", "password")
loc3 = ("id", "submit")

el1 = zentao.findElement(loc1)

#判断元素
r1 = el1.is_displayed()
print(r1)  # True 显示的

loc4 = ("id", "hiddenwin")
el2 = zentao.findElement(loc4)
r2 = el2.is_displayed()
print(r2)  # False 隐藏的

loc5 = ("id", "hiddenwin1")
el3 = zentao.findElement(loc5)
r3 = el3.is_displayed()
print(r3)  # 报错selenium.common.exceptions.TimeoutException: Message元素不存在
Пример #8
0
import time

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains  #鼠标操作
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select  #导入Select 类

from common.base import Base

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# driver.maximize_window()
base = Base(driver)
loc1 = ("link text", "设置")
loc2 = ("link text", "搜索设置")
loc3 = (By.ID, "nr")
loc4 = (By.LINK_TEXT, "保存设置")
mouse = base.findElement(loc1)
ActionChains(driver).move_to_element(mouse).perform()
base.findElement(loc2).click()
s = base.findElement(loc3)
Select(s).select_by_value("20")
base.click(loc4)
a = driver.switch_to.alert
print(a.text)
a.accept()
time.sleep(5)
driver.quit()
Пример #9
0
# coding=utf-8
from common.base import Base
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
loc1 = ("link text", "设置")
dudu = Base(driver)
mouse = dudu.findElement(loc1)
ActionChains(driver).move_to_element(mouse).perform()

loc2 = ("link text", "搜索设置")
dudu.click(loc2)

loc3 = ("id", "nr")
s = dudu.findElement(loc3)
Select(s).select_by_value("20")
Пример #10
0
from common.base import Base
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
driver = webdriver.Firefox()
driver.get('https://www.baidu.com')
zentao = Base(driver)

loc1 = ('link text', '设置')
mouse = zentao.findElement(loc1)
ActionChains(driver).move_to_element(mouse).perform()

loc2 = ('link text', '搜索设置')
zentao.click(loc2)
loc3 = ('xpath', ".//*[@id='nr']/option[3]")
r1 = zentao.findElement(loc3).is_selected()
print(r1)

loc4 = ('id', 'nr')
select = zentao.findElement(loc4)
Select(select).select_by_index(2)

r2 = zentao.findElement(loc3).is_selected()
print(r2)