from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import Select from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support import expected_conditions as EC class Base(): def __init__(self,driver): self.driver = driver self.driver.maximize_window() def find(self,locator): ele = WebDriverWait(self.driver, 10).until(lambda x: x.find_element(*locator)) return ele def send(self,locator,text): ele =self.find(locator) ele.send_keys(text) def click(self,locator): self.find(locator).click() def clear(self,locator): self.find(locator).clear() def get_text(self, locator): ele =self.find(locator) return ele.text def is_element_exist(self,locator): '''判断元素是否存在,结果返回布尔值 ture 或 false''' try: self.find(locator) print("找到元素了!!!!!") return True except: print("找不到元素") return False def text_in_element(self,locator,_text): '''判断元素text属性''' try: r = WebDriverWait(self.driver,30,1).until(EC.text_to_be_present_in_element(locator,_text)) return r except: return False def value_in_element(self,locator,text): '''判断元素value属性''' try: r = WebDriverWait(self.driver,30,1).until(EC.text_to_be_present_in_element(locator,_text)) return r except: return False def move_to_element(self,locator): '''鼠标悬停''' element = self.find(locator) ActionChains(self.driver).move_to_element(element).perform() def select_by_index(self,locator,index=0): '''select下拉框,index索引''' element =self.find(locator) Select(element).select_by_index(index) def select_by_value(self,locator,value): '''select下拉框,value''' element =self.find(locator) Select(element).select_by_index(value) def select_by_text(self,locator,_text): '''select下拉框,文本''' element =self.find(locator) Select(element).select_by_visible_text(_text) def is_alert(self,timeout=3): '''判断是否有alert,没有返回false,有返回alert对象''' try: alert = WebDriverWait(self.driver,timeout,1).until(EC.alert_is_present()) return alert except: return False def js_focus_element(self,locator): '''聚焦元素''' target=self.find(locator) self.driver.execute_scrit("arguments[0,0]") def js_focus_top(self,locator): '''滑动到顶部''' js ="window.scrollTo(0,0)" self.driver.execute_scrit(js) def js_focus_end(self,locator): '''滑动到底部''' js =(0,"document.body.scrollHeight") self.driver.execute_scrit(js) if __name__ == '__main__': from selenium import webdriver driver = webdriver.Firefox() driver.get("http://192.168.43.57/phpwind/admin.php#initiator") loc1 = ("name","admin_name") loc2 = ("name", "admin_pwd") loc3 = ("name", "submit") login_xpath = ("xpath",'html/body/table/tbody[1]/tr[1]/td/div/div/p/a[2]') b = Base(driver) #实例 b.send(loc1,"admin") b.send(loc2, "123456") b.click(loc3) t = b.get_text(login_xpath) print(t) assert t == "[注销]"
访问网站:http://192.168.43.57/phpwind/admin.php
1.登录
- 输入账号
- 输入密码
- 点击登录
2.添加用户
- 用户,用户管理
- 添加用户,输入用户,提交
新建用户页面:
import time from t7.common.base import Base from t7.pages.login_page import Login from selenium.webdriver.common.by import By class AddStudentInfo(Base): loc1 =(By.LINK_TEXT,"用户") loc2 =(By.LINK_TEXT,"用户管理") loc3 =(By.LINK_TEXT,"添加用户") loc4 =("name","username") loc5 =("name","password") loc6 =("name","email") #先点一下,再去选择选项 loc7 =(By.CLASS_NAME,"select_wa") loc8 =(By.XPATH,"html/body/div[1]/form/div[2]/span/span/button") loc9 =(By.ID,"message") def add_stdent(self): self.click(self.loc1) self.click(self.loc2) self.driver.switch_to.frame("consumer-usermanage") self.click(self.loc3) self.send(self.loc4,"test001") self.send(self.loc5,"123456") self.send(self.loc6,"[email protected]") self.click(self.loc6) self.select_by_text(self.loc7,"普通会员") self.click(self.loc8) self.click(self.loc9) def is_add_student_sucess(self,text): #“用户名,在当前页面 body =("tag name","body") t2 =self.find(body).text print(t2) return text in t2 if __name__ == '__main__': from selenium import webdriver driver = webdriver.Firefox() driver.get("http://192.168.43.57/phpwind/admin.php") a =Login(driver) a.login() b = AddStudentInfo(driver) b.add_stdent() result =b.is_add_student_sucess("完成相应操作") print("结果:%s" %result)
标签:12,locator,text,self,driver,element,案例,def From: https://www.cnblogs.com/pingzi66-ww/p/17100283.html