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()
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]))
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
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
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
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
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
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
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()
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
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
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
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
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
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)
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
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
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()
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
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)
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
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
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
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
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
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
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