SA200-ATestMethod

#!/usr/bin/env python

-- coding: utf-8 --

‘’’
Created on 2019年1月27日

@author: chelei
‘’’
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
import time
import pymysql
import logging
import sys

加入日志

获取logger实例

logger = logging.getLogger(“baseSpider”)

指定输出格式

formatter = logging.Formatter(’%(asctime)s
%(levelname)-8s:%(message)s’)

文件日志

file_handler = logging.FileHandler(“baseSpider.log”)
file_handler.setFormatter(formatter)

控制台日志

console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(formatter)

为logge添加具体的日志处理器

logger.addHandler(file_handler)
logger.addHandler(console_handler)

logger.setLevel(logging.INFO)

class ATestMethod():
def init(self, passwd, url, host, user, pwd, db, port):
# self.username=username
self.password = passwd +
time.strftime(’%Y%m%d’, time.localtime(time.time()))
self.url = url
self.host = host
self.user = user
self.pwd = pwd
self.db = db
self.port = port
self.conn = None
self.cur = None
self.driver = webdriver.Firefox()

def login(self):
    self.driver.get(self.url)
    time.sleep(2)
    self.driver.maximize_window()
    self.driver.find_element_by_class_name(
        "main-input").send_keys(self.password)
    self.driver.find_element_by_class_name('login-btn').click()
    WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, 'focus')),
                                         message='测试页面打开失败')
    return self.driver

def closebrowser(self):
    self.driver.quit()

# 连接数据库
def open(self):
    try:
        self.conn = pymysql.connect(
            self.host, self.user, self.pwd, self.db, self.port, charset='utf8')
    except:
        logger.error("connectDatabase failed")
        return False
    self.cur = self.conn.cursor()
    return self.cur

# 关闭数据库
def close(self):
    # 如果数据打开,则关闭;否则没有操作
    if self.conn and self.cur:
        self.cur.close()
        self.conn.close()
    return True

# 用来查询表数据
def fetchall(self, sql, params=None):
    try:
        self.open()
        self.cur.execute(sql, params)
        self.close()
        return self.cur.fetchall()
    except Exception as e:
        print(e.message)

def swich_menu(self, menu):
    # self.driver.implicitly_wait(5),eckodriver.exe版本过低
    if menu == "智能巡检":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[1]').click()
    if menu == "视频监控":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[2]').click()
    if menu == "系统配置":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[3]').click()
        WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, '//*[@id="page-settings"]/div[1]/span[2]/div/span[2]/div/div')), message='建站工具按钮未展示')
    if menu == "巡检记录":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[4]').click()
    if menu == "异常告警":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[5]').click()
    if menu == "温湿度曲线":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[6]').click()
    if menu == "今日任务":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[7]').click()
    if menu == "巡检纠错":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[8]').click()
    if menu == "帮助":
        self.driver.find_element_by_xpath(
            '//*[@id="zeus"]/div[2]/span[1]/dl/dd[9]').click()

def buildstation(self, stationname, stationID):
    self.driver.find_element_by_xpath(
        '//*[@id="panel-calibration-file"]/div[2]/div[1]/span[2]/div').click()
    WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
        (By.XPATH, '//*[@id="widget-add-station"]/div/span[1]/div[2]/input')), message='建站工具按钮未展示')
    self.driver.find_element_by_xpath(
        '//*[@id="widget-add-station"]/div/span[1]/div[2]/input').send_keys(stationname)
    self.driver.find_element_by_xpath(
        '//*[@id="widget-add-station"]/div/span[1]/div[3]/input').send_keys(stationID)
    self.driver.find_element_by_xpath(
        '//*[@id="widget-add-station"]/div/span[1]/div[4]/span[1]/div').click()
    WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
        (By.XPATH, '//*[@id="sysPop"]/span[3]/div[3]/div[2]/span/span')), message='确定对话框未展示')
    TipsSuccess = self.driver.find_element_by_xpath(
        '//*[@id="sysPop"]/span[3]/div[3]/div[1]').text
    self.driver.find_element_by_xpath(
        '//*[@id="sysPop"]/span[3]/div[3]/div[2]/span/span').click()
    return TipsSuccess

def swich_submenu(self, submenu):
    self.swich_menu("系统配置")
    # 进入建站工具页面
    self.driver.find_element_by_xpath(
        '//*[@id="page-settings"]/div[1]/span[2]/div/span[2]/div/div').click()
    WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
        (By.XPATH, '//*[@id="panel-calibration-file"]/div[2]/div[2]/div[2]/table/tbody')), message='未进入建站工具页面')
    self.driver.find_element_by_xpath(
        '//*[@id="panel-calibration-file"]/div[2]/div[2]/div[2]/table/tbody').click()
    WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
        (By.XPATH, '//*[@id="panel-params-settings"]/div/span[1]/div/div[1]/span/span/div')), message='未进入参数设置页面')
    if submenu == "参数设置":
        self.driver.find_element_by_xpath(
            '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[1]').click()
        WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[2]')), message='未进入参数设置页面')
    if submenu == "巡检设备采集":
        self.driver.find_element_by_xpath(
            '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[2]').click()
        WebDriverWait(self.driver, 10).until(EC.visibility_of_any_elements_located(
            (By.XPATH, '//*[@id="control"]/div/div/div[2]/span[2]')), message='未进入巡检设备采集页面')
    if submenu == "地图信息采集":
        self.driver.find_element_by_xpath(
            '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[3]').click()
        WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[3]')), message='未进入地图信息采集页面')
    if submenu == "环境设备采集":
        self.driver.find_element_by_xpath(
            '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[4]').click()
        WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[4]')), message='未进入环境设备采集页面')
    if submenu == "关联设备":
        self.driver.find_element_by_xpath(
            '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[5]').click()
        WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[5]')), message='未进入环境设备采集页面')
    if submenu == "策略":
        self.driver.find_element_by_xpath(
            '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[6]').click()
        WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, '//*[@id="page-settings"]/div[3]/div[1]/div[1]/span[6]')), message='未进入环境设备采集页面')

def getstationlist(self, stationID):
    row = self.driver.find_element_by_xpath(
        '//*[@id="panel-calibration-file"]/div[2]/div[2]/div[1]/table').find_elements_by_tag_name('tr')
    stationtolist = []
    for i in row:
        j = i.find_elements_by_tag_name('td')[1].text
        print(j)
        if j == str(stationID):
            f = i.find_elements_by_tag_name('td')
            for item in f:
                text = item.text
                stationtolist.append(text)
    return stationtolist

def getevneqlist(self, evnname):
    evn = self.driver.find_element_by_xpath(
        '//*[@id="panel-env-collect"]/div[2]/table').find_elements_by_tag_name('tr')
    evneqlist = []
    for i in evn:
        j = i.find_elements_by_tag_name('td')[0].text
        print(j)
        if j == str(evnname):
            f = i.find_elements_by_tag_name('td')
            for item in f:
                text = item.text
                evneqlist.append(text)
    return evneqlist

def buildEnvironmental(self, etype, number, space, category, name=""):
    self.swich_menu("系统配置")
    self.swich_submenu("环境设备采集")
    time.sleep(2)
    self.driver.find_element_by_xpath(
        '//*[@id="panel-env-collect"]/div[1]/span/span[2]/div').click()
    WebDriverWait(self.driver, 10).until(
        EC.visibility_of_element_located(
            (By.XPATH, '//*[@id="widget-env-collect-editor"]/div/div[1]/span[1]')),
        message='添加环境设备页面未展示')
    # 新建环境设备
    self.driver.find_element_by_xpath(
        '//*[@id="widget-env-collect-editor"]/div/div[2]/div[1]/input').send_keys(etype + number + name)
    Select(self.driver.find_element_by_xpath(
        '//*[@id="widget-env-collect-editor"]/div/div[2]/div[2]/select')).select_by_visible_text(etype)
    self.driver.find_element_by_xpath('//*[@id="widget-env-collect-editor"]/div/div[2]/div[4]/input[2]').send_keys(
        number)
    Select(self.driver.find_element_by_xpath('//*[@id="widget-env-collect-editor"]/div/div[2]/div[5]/select')).select_by_visible_text(
        space)
    Select(self.driver.find_element_by_xpath('//*[@id="widget-env-collect-editor"]/div/div[2]/div[6]/select')).select_by_visible_text(
        category)
    self.driver.find_element_by_xpath(
        '//*[@id="widget-env-collect-editor"]/div/div[2]/div[7]/span/div').click()

def reviseEnvironmental(self, rename="None", num="None"):
    self.driver.find_element_by_xpath(
        '//*[@id="panel-env-collect"]/div[2]/table/tbody/tr[1]/td[7]/span[1]').click()
    WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(
        (By.XPATH, '//*[@id="widget-env-collect-editor"]/div')), message='修改环境设备页面未展示')
    if rename == "None":
        print('设备名称不修改')
    else:
        self.driver.find_element_by_xpath(
            '//*[@id="widget-env-collect-editor"]/div/div[3]/div[1]/input').clear()
        self.driver.find_element_by_xpath(
            '//*[@id="widget-env-collect-editor"]/div/div[3]/div[1]/input').send_keys(rename)
    if num == "None":
        print('设备位号不修改')
    else:
        self.driver.find_element_by_xpath(
            '//*[@id="widget-env-collect-editor"]/div/div[3]/div[4]/input[2]').clear()
        self.driver.find_element_by_xpath(
            '//*[@id="widget-env-collect-editor"]/div/div[3]/div[4]/input[2]').send_keys(num)
    self.driver.find_element_by_xpath(
        '//*[@id="widget-env-collect-editor"]/div/div[3]/div[7]/span/div').click()

def selectEnvironmental(self, envname, envtype, envspace):
    self.driver.find_element_by_xpath(
        '//*[@id="panel-env-collect"]/div[1]/div[1]/input').send_keys(envname)
    Select(self.driver.find_element_by_xpath(
        '//*[@id="panel-env-collect"]/div[1]/div[2]/select')).select_by_visible_text(envtype)
    Select(self.driver.find_element_by_xpath(
        '//*[@id="panel-env-collect"]/div[1]/div[3]/select')).select_by_visible_text(envspace)
    self.driver.find_element_by_xpath(
        '//*[@id="panel-env-collect"]/div[1]/span/span[1]/div').click()

if name == ‘main’:

a = ATestMethod(passwd=“A200-0001”, url=“http://192.168.20.4:8080/CoreBusinessServer/index.html”)

a.login()

a.closebrowser()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sa-sdk-javascript是一个用于埋点的JavaScript SDK。根据提供的引用内容,你遇到了一个安装该SDK时的错误。错误信息显示了一个完整性校验失败的错误,这可能是由于下载的文件与预期的文件不匹配导致的。\[1\] 为了解决这个问题,你可以尝试以下几个步骤: 1. 确保你的网络连接正常,重新运行npm install sa-sdk-javascript命令,看看问题是否解决。 2. 如果问题仍然存在,可以尝试清除npm缓存,然后再次运行npm install sa-sdk-javascript命令。你可以使用npm cache clean命令来清除缓存。 3. 如果以上步骤都没有解决问题,可能是由于SDK的版本不兼容或存在其他依赖关系问题。你可以尝试更新SDK的版本,或者查看SDK的文档和社区支持来获取更多帮助。 另外,根据引用\[2\]和引用\[3\],你还可以参考这些代码示例来了解如何在你的应用程序中正确配置和使用sa-sdk-javascript。这些示例提供了在main.js和组件中使用SDK的方法。确保你按照正确的方式引入SDK并进行配置,以便正确发送埋点事件。 #### 引用[.reference_title] - *1* [npm安装sa-sdk-javascript失败的解决办法](https://blog.csdn.net/hahaha113461/article/details/82423827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Vue3项目的埋点统计,神策SDK接入](https://blog.csdn.net/belong_me/article/details/130765483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值