Exemplo n.º 1
0
 def __init__(self):
     self.dt = Data()
     readIni = ReadIni()
     self.base_url = readIni.get_value('base_url', 'api')
     self.schoolweb_url = readIni.get_value('schoolweb_url', 'api')
     self.req = Request()
     self.row_total = self.dt.row_total()
Exemplo n.º 2
0
 def __init__(self, lib):
     read_init = ReadIni()
     try:
         self.conn = pymysql.connect(
             host=read_init.get_value(lib, 'host'),
             port=int(read_init.get_value(lib, 'port')),
             user=read_init.get_value(lib, 'user'),
             password=read_init.get_value(lib, 'password'),
             db=read_init.get_value(lib, 'db_name'),
         )
     except pymysql.err.OperationalError as e:
         print("Mysql Error %d: %s" % (e.args[0], e.args[1]))
Exemplo n.º 3
0
    def get_elements(self, key, *args):
        read_ini = ReadIni()
        data = read_ini.get_value(key)
        data = data.split(">", 1)
        by = data[0]
        value = data[1]
        by = data[0]
        value = data[1]
        if by == 'id':
            return self.driver.find_elements_by_id(value)
        elif by == 'name':
            return self.driver.find_elements_by_name(value)
        elif by == "linktext":
            return self.driver.find_elements_by_link_text(value)
        elif by == "partiallinxtext":
            return self.driver.find_elements_by_partial_link_text(value)
        elif by == 'tagname':
            return self.driver.find_elements_by_tag_name(value)
        elif by == "classname":
            return self.driver.find_elements_by_class_name(value)
        elif by == "css":
            return self.driver.find_elements_by_css_selector(value)
        elif by == "xpath":
            return self.driver.find_elements_by_xpath(value)
        elif by == 'jsscript':
            return self.driver.execute_script(value, *args)
        elif by == "jsasyncscript":
            return self.driver.execute_async_script(value, *args)


# if __name__ == '__main__':
#     fl = Find_Element()
#     fl.get_element("user_name")
    def get_element(self, key):
        read_ini = ReadIni()
        data = read_ini.get_value(key)
        data_list = data.split(">")
        # print(data_list)
        by = data_list[0]
        # print(by)
        value = data_list[1]
        # print(value)
        No = 0
        if by == "classnames":
            No = int(data_list[2])

        try:
            if by == "id":
                return self.driver.find_element_by_id(value)
            elif by == "name":
                return self.driver.find_element_by_name(value)
            elif by == "classname":
                return self.driver.find_element_by_class_name(value)
            elif by == "classnames":
                return self.driver.find_elements_by_class_name(value)[No]
            elif by == "xpath":
                return self.driver.find_element_by_xpath(value)
        except:
            self.driver.save_screenhot()
            return None
Exemplo n.º 5
0
class FindElement(object):
    def __init__(self, driver, file_name=None, node=None):
        self.driver = driver
        self.file_name = file_name
        self.node = node
        self.file = ReadIni(self.file_name, self.node)

    def get_elemnet(self, value):

        h = self.file.get_value(value)
        by = h.split('<')[0]
        valu = h.split('<')[1]
        try:
            if by == 'id':
                return self.driver.find_element_by_id(valu)
            elif by == 'name':
                return self.driver.find_element_by_name(valu)
            elif by == 'class':
                return self.driver.find_element_by_class_name(valu)
            elif by == 'xpath':
                return self.driver.find_element_by_xpath(valu)
            elif by == 'css':
                return self.driver.find_element_by_css_selector(valu)
            elif by == 'css_s':
                return self.driver.find_elements_by_css_selector(valu)
            elif by == 'classNames':
                return self.driver.find_elements_by_class_name(valu)
            elif by == 'js':
                return self.driver.execute_script(valu)
            else:
                return self.driver.find_element_by_link_text(valu)
        except:
            return None
Exemplo n.º 6
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     a = data.split('>')
     if len(a) == 2:
         by = data.split('>')[0]
         value = data.split('>')[1]
         try:
             if by == 'id':
                 return self.cc.find_element_by_id(value)
             elif by == 'class_name':
                 return self.cc.find_element_by_class_name(value)
             else:
                 return self.cc.find_element_by_xpath(value)
         except:
             return None
     else:
         by = data.split('>')[0]
         value = data.split('>')[1]
         send = data.split('>')[2]
     try:
         if by == 'id':
             return self.cc.find_element_by_id(value).send_keys(send)
         elif by == 'class_name':
             return self.cc.find_element_by_class_name(value).send_keys(
                 send)
         else:
             return self.cc.find_element_by_xpath(value).send_keys(send)
     except:
         return None
Exemplo n.º 7
0
class GetElement:
    def __init__(self, driver, filename=None):
        self.driver = driver
        self.filename = filename
        self.r = ReadIni(self.filename)

    def get_element_key(self, key, section=None):
        element_key = self.r.get_value(key, section)
        if element_key:
            element_key_list = element_key.split(">")
        else:
            element_key_list = None
            print("配置文件中未取到该元素")
        return element_key_list

    def get_element(self, key, section=None):
        key_list = self.get_element_key(key, section)
        wait = WebDriverWait(self.driver, 15)
        print("####################")
        print(key_list[1])
        try:
            if key_list[0] == 'id':
                key_tuple = (By.ID, key_list[1])
            elif key_list[0] == 'name':
                key_tuple = (By.NAME, key_list[1])
            else:
                key_tuple = (By.XPATH, key_list[1])
            element = wait.until(EC.visibility_of_element_located(key_tuple))
        except:
            print("元素未找到")
            element = None
        return element
Exemplo n.º 8
0
    def get_element(self, key):
        read_ini = ReadIni()
        # 返回register_nickname形式数据
        data = read_ini.get_value(key)
        # 以>进行拆分,第一个是查找形式,第二个是查找参数
        by = data.split('>')[0]
        val = data.split('>')[1]
        try:
            if by == 'id':
                element = self.driver.find_element_by_id(val)
                return element
            elif by == 'link_text':
                element = self.driver.find_element_by_link_text(val)
                return element
            elif by == 'class_name':
                element = self.driver.find_elements_by_class_name(val)
                return element
            elif by == 'xpath':
                element = self.driver.find_element_by_xpath(val)
                return element
            else:
                element = self.driver.find_element_by_css_selector(val)
                return element

        except:
            return None
Exemplo n.º 9
0
 def get_element(self, key, *args):
     #key 未local_element.ini中等号前面的部分,如:user_name=id>"user_login" key为:user_name
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     data = data.split(">", 1)
     by = data[0]
     value = data[1]
     print('by: ', by, 'value: ', value)
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == "linktext":
             return self.driver.find_element_by_link_text(value)
         elif by == "partiallinxtext":
             return self.driver.find_element_by_partial_link_text(value)
         elif by == 'tagname':
             return self.driver.find_element_by_tag_name(value)
         elif by == "classname":
             return self.driver.find_element_by_class_name(value)
         elif by == "css":
             return self.driver.find_element_by_css_selector(value)
         elif by == "xpath":
             return self.driver.find_element_by_xpath(value)
         elif by == 'jsscript':
             return self.driver.execute_script(value, *args)
         elif by == "jsasyncscript":
             return self.driver.execute_async_script(value, *args)
     except:
         return None
Exemplo n.º 10
0
class Sendmail:
    def __init__(self, runningtime):
        self.user_log = UserLog().get_log()
        self.read_ini = ReadIni(node='email')
        self.run_time = runningtime

    def send_mail(self):
        sender = self.read_ini.get_value('sender')
        passwd = self.read_ini.get_value('passwd')
        receiver = self.read_ini.get_value('receivers')
        mail_host = self.read_ini.get_value('mail_host')
        print(sender, passwd, receiver, mail_host)
        tm = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
        msg = MIMEMultipart()
        msg['Subject'] = Header(
            self.read_ini.get_value('header') + tm, 'utf-8')
        msg['From'] = sender
        msg['To'] = receiver

        #发送邮件正文
        msg.attach(
            MIMEText(
                self.read_ini.get_value('content') + str(self.run_time),
                'plain', 'utf-8'))
        #构造附件
        lists = []
        print(self.read_ini.get_value('path'))
        for root, dirs, files in os.walk(self.read_ini.get_value('path')):
            for file in files:
                if file.endswith(".html"):
                    lists.append(os.path.join(root, file))
        lists.sort(key=lambda f: os.stat(f).st_mtime)
        print(lists)
        lastmodified = lists[-1]
        att = MIMEText(open(lastmodified, 'rb').read(), 'base64', 'utf-8')
        att['Content-Type'] = 'application/octet-stream'
        att['Content-Disposition'] = 'attachment;filename=' + self.read_ini.get_value(
            'filename')
        msg.attach(att)

        #发送
        try:
            smtpObj = smtplib.SMTP()
            smtpObj.connect(mail_host, 25)
            smtpObj.login(sender, passwd)
            smtpObj.sendmail(sender, receiver, msg.as_string())
        except Exception as e:
            print(e)
            print('发送失败')
            self.user_log.warn("邮件发送失败:" + tm)
        else:
            print('发送成功')
            self.user_log.info('邮件发送成功')
        finally:
            smtpObj.close()
Exemplo n.º 11
0
 def get_coordinate(self, key, section):
     read_ini = ReadIni()
     local = read_ini.get_value(key, section)
     if local is None:
         return None
     local_by = local.split(">")[1]
     size = self.driver.get_window_size()
     x = int(float(local_by.split(",")[0]) * size['width'])
     y = int(float(local_by.split(",")[1]) * size['height'])
     return x, y
Exemplo n.º 12
0
 def get_element(self, node_element, element):
     try:
         read_ini = ReadIni()
         data = read_ini.get_value(node_element, element)
         by = data.split('>')[0]
         value = data.split('>')[1]
         result = self.driver.find_element(by, value)
     except:
         result = None
     return result
Exemplo n.º 13
0
class GetElement:
    def __init__(self, driver, logger, filename=None):
        self.driver = driver
        self.filename = filename
        self.r = ReadIni(self.filename)
        self.op_pic = OperaPics()
        self.logger = logger

    def get_element_key(self, key, section=None):
        element_key = self.r.get_value(key, section)
        if element_key:
            element_key_list = element_key.split(">")
        else:
            element_key_list = None
            self.logger.error("配置文件中未取到该元素")
            #print("配置文件中未取到该元素")
        return element_key_list

    def get_element(self, key, section=None, timeout=50, poll=0.5):
        key_list = self.get_element_key(key, section)
        wait = WebDriverWait(self.driver, timeout, poll)
        try:
            if key_list[0] == 'id':
                key_tuple = (By.ID, key_list[1])
            elif key_list[0] == 'name':
                key_tuple = (By.NAME, key_list[1])
            else:
                key_tuple = (By.XPATH, key_list[1])
            element = wait.until(EC.visibility_of_element_located(key_tuple))
            self.logger.info("元素:{} 已找到,元素信息为{}".format(
                key_list[1], str(element)))
        except TimeoutException as e:
            self.logger.warning("元素:{} 未找到".format(key_list[1]))
            self.op_pic.save_pic(self)
            element = None
        return element

    def wait_element_disappear(self, key, section=None, timeout=50, poll=0.5):
        key_list = self.get_element_key(key, section)
        wait = WebDriverWait(self.driver, timeout, poll)
        try:
            if key_list[0] == 'id':
                key_tuple = (By.ID, key_list[1])
            elif key_list[0] == 'name':
                key_tuple = (By.NAME, key_list[1])
            else:
                key_tuple = (By.XPATH, key_list[1])
            res = wait.until_not(EC.visibility_of_element_located(key_tuple))
            self.logger.info("元素:{} 已消失".format(key_list[1]))
            return res
        except TimeoutException as e:
            self.logger.warning("元素:{} 还未消失".format(key_list[1]))
            #print("元素:{} 还未消失".format(key_list[1]))
            self.op_pic.save_pic(self)
            return False
Exemplo n.º 14
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split(">")[0]
     value = data.split(">")[1]
     try:
         if by == "id":
             return self.driver.find_element_by_id(value)
         if by == "xpath":
             return self.driver.find_element_by_xpath(value)
     except:
         return None
Exemplo n.º 15
0
    def get_element(self,key):
        read_ini = ReadIni()
        local = read_ini.get_value(key)
        by = local.split('>')[0]
        local_by = local.split('>')[1]
        if local != None:
            if by == 'id':
                return self.driver.find_element_by_id(local_by)
            elif by == 'className':
                return self.driver.find_elements_by_class_name(local_by)
            else:
                return self.driver.find_element_by_android_uiautomator(local_by)

        else:
            return None
Exemplo n.º 16
0
 def get_element(self, section, key):
     read_ini = ReadIni(
         'C:/Users/xx/Desktop/SeleniumPython2/config/LocalElement.ini')
     #id>com.msjt.sigma:id/id_name
     local = read_ini.get_value(section, key)
     by = local.split('>')[0]
     local_by = local.split('>')[1]
     if by == 'ids':
         return self.driver.find_elements_by_id(local_by)
     elif by == 'id':
         return self.driver.find_element_by_id(local_by)
     elif by == 'className':
         return self.driver.find_element_by_class_name(local_by)
     else:
         return self.driver.find_element_by_xpath(local_by)
Exemplo n.º 17
0
	def login(self,broswer='Chrome'):
		'''
		公用登录方法
		'''
		if broswer == 'Chrome':
			driver = webdriver.Chrome()
		driver.get('http://www.18crm.com')
		driver.maximize_window()
		fd = FindElement(driver,'../config/LocalElement.ini')
		rd = ReadIni('../config/TestData.ini')
		fd.get_element('login','username').send_keys(rd.get_value('public_login','username'))
		fd.get_element('login','password').send_keys(rd.get_value('public_login','password'))
		fd.get_element('login','loginButton').click()
		self.acceptAlert(driver)
		return driver
Exemplo n.º 18
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split('>')[0]
     value = data.split('>')[1]
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'classname':
             return self.driver.find_element_by_classname(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         return None
Exemplo n.º 19
0
def select_brower():
    read_ini = ReadIni(node='webdriver')
    web_driver = read_ini.get_key('webdriver')
    for wd in web_driver:
        if wd == 'firefox':
            return webdriver.Firefox()
        elif wd == 'ie':
            return webdriver.Ie()
        elif wd == '360':
            wd_option = read_ini.get_value('360')
            chrome_options = webdriver.ChromeOptions()
            chrome_options.binary_location = wd_option
            chrome_options.add_argument(r'--lang=zh-CN')
            return webdriver.Chrome(chrome_options=chrome_options)
        elif wd == 'chrome':
            return webdriver.Chrome()
Exemplo n.º 20
0
 def get_element(self,key):
     element_obj = ReadIni('D:\\Imooc_selenium\\config\\LocalElement.ini','RegisterElement')
     data = element_obj.get_value(key)
     by = data.split('>')[0]
     value = data.split('>')[1]
     try:
         if by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'xpath':
             return self.driver.find_element_by_xpath(value)
         elif by == 'class_name':
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_id(value)
     except:
         return None
Exemplo n.º 21
0
 def get_element(self, key):
     ri = ReadIni()
     data = ri.get_value(key=key)
     by = data.split('>')[0]
     value = data.split('>')[1]
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'className':
             return self.driver.find_element_by_className(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         file_path = '../image/no_element.png'
         self.driver.save_screenshot(file_path)
Exemplo n.º 22
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split('>')[0]
     value = data.split('>')[1]
     # self.logger.info("定位方式:"+by+"--->定位值:"+value)
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'className':
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         return None
Exemplo n.º 23
0
class FoundElement ():
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.get("http://www.5itest.cn/register")
        self.init= ReadIni()
        time.sleep(5)

    def getElement(self,value):

        data=self.init.get_value(value)
        by=data.split('>')[0]
        element=data.split('>')[1]
        if by=='id':
            self.driver.find_element_by_id(element).send_keys('111')

    def close(self):
        self.driver.close()        
 def get_element(self, key):
     ''' 定位元素 '''
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split('>')[0]  # 字符串用'>'符号分割开来
     value = data.split('>')[1]
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'classname':
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:  # 如果没定位到元素,返回None
         return None
Exemplo n.º 25
0
    def get_element(self, key):
        try:
            read_ini = ReadIni()
            data = read_ini.get_value(key)
            by = data.split(":")[0]
            value = data.split(":")[1]

            if by == 'id':
                return self.driver.find_element_by_id(value)
            elif by == "name":
                return self.driver.find_element_by_name(value)
            elif by == "className":
                return self.driver.find_element_by_class_name(value)
            elif by == "xpath":
                return self.driver.find_element_by_xpath(value)
        except:
            return None
Exemplo n.º 26
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split('>')[0]
     value = data.split('>')[1]
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'className':
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         # self.driver.save_screenshot('E:/pythonProject/SeleniumPython/Image/%s.png' %value)
         return None
Exemplo n.º 27
0
 def get_element(self,key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split(">")[0]
     value = data.split(">")[1]
     try:
         if by == "id":
             return self.driver.find_element_by_id(value)
         if by == "name":
             return self.driver.find_element_by_name(value)
         if by == "className":
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         self.driver.save_screenshot("E:/ui_auto/Image/%s" %value)
         return None
Exemplo n.º 28
0
 def get_element(self, key):
     read_ini = ReadIni()
     # 获取元素实际的id等信息
     data = read_ini.get_value(key)
     by = data.split(">")[0]
     value = data.split(">")[1]
     try:
         if by == 'id':
             return self.driver.find_element_by_id(value)
         elif by == 'name':
             return self.driver.find_element_by_name(value)
         elif by == 'className':
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         # self.driver.save_screenshot()
         return None
Exemplo n.º 29
0
 def get_element(self, key):
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split(">")[0]
     value = data.split('>')[1]
     try:
         if by == "id":
             return self.driver.find_element_by_id(value)
         elif by == "name":
             return self.driver.find_element_by_name(value)
         elif by == "xpath":
             return self.driver.find_element_by_xpath(value)
         elif by == "className":
             return self.driver.find_element_by_class_name(value)
     except:
         # file_path = os.path.abspath(os.path.join(os.getcwd(), "..")) + r"\img\%s.png" % value
         # self.driver.save_screenshot(file_path)
         return None
 def get_element(self, key):
     """获取元素"""
     read_ini = ReadIni()
     data = read_ini.get_value(key)
     by = data.split(">")[0]
     value = data.split(">")[1]
     try:
         if by == "id":
             return self.driver.find_element_by_id(value)
         elif by == "name":
             return self.driver.find_element_by_name(value)
         elif by == "classname":
             return self.driver.find_element_by_class_name(value)
         else:
             return self.driver.find_element_by_xpath(value)
     except:
         self.driver.save_screenshot("E:\\测试\\selenium_project\\error.png")
         return None