selenium定位元素封装及相关断言

xiaoxiao2025-04-14  14

from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait # from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC class Base(): def __init__(self, driver:webdriver.Firefox): self.driver = driver self.timeout = 10 self.t = 0.5 def findElementNew(self, locator): ''' 定位到元素, 返回元素对象, 没定位到, Timeout异常 ''' ele = WebDriverWait(self.driver, self.timeout, self.t).until(EC.presence_of_element_located(locator)) return ele def findElement(self, locator): ele = WebDriverWait(self.driver, self.timeout, self.t).until(lambda x: x.find_element(*locator)) return ele def findElements(self, locator): try: eles = WebDriverWait(self.driver, self.timeout, self.t).until(lambda x: x.find_elements(*locator)) return eles except: return [] def sendKeys(self, locator, text): ele = self.findElement(locator) ele.send_keys(text) def click(self, locator): ele = self.findElement(locator) ele.click() def clear(self, locator): ele = self.findElement(locator) ele.clear() def isSelected(self, locator): ''' 判断元素是否被选中, 返回bool值 ''' ele = self.findElement(locator) r = ele.is_selected() return r def isElementExist(self, locator): try: self.findElement(locator) return True except: return False def isElementExist2(self, locator): eles = self.findElements(locator) n = len(eles) if n == 0: return False elif n == 1: return True else: print("定位到元素的个数:%s"%n) return True def is_title(self, _title): '''返回bool值''' try: result = WebDriverWait(self.driver, self.timeout, self.t).until(EC.title_is(_title)) return result except: return False def is_title_contains(self, _title): '''返回bool值''' try: result = WebDriverWait(self.driver, self.timeout, self.t).until(EC.title_contains(_title)) return result except: return False def is_text_in_element(self, locator, _text): '''返回bool值''' try: result = WebDriverWait(self.driver, self.timeout, self.t).until(EC.text_to_be_present_in_element(locator, _text)) return result except: return False def is_value_in_element(self, locator, _value): '''返回bool值, value为空字符串,返回Fasle''' try: result = WebDriverWait(self.driver, self.timeout, self.t).until(EC.text_to_be_present_in_element_value(locator, _value)) return result except: return False def is_alert(self): try: result = WebDriverWait(self.driver, self.timeout, self.t).until(EC.alert_is_present()) return result except: return False if __name__ == "__main__": driver = webdriver.Firefox() driver.get("http://127.0.0.1/zentao/user-login-L3plbnRhby8=.html") zentao = Base(driver) loc1 = ("id", "account") loc2 = ("css selector", "[name='password']") loc3 = ("xpath", "//*[@id='submit']") zentao.sendKeys(loc1, "root") zentao.sendKeys(loc2, "123456") zentao.click(loc3)
转载请注明原文地址: https://www.6miu.com/read-5028245.html

最新回复(0)