from selenium.webdriver.common.by import By import time from selenium import webdriver from selenium.webdriver.remote.webelement import WebElement from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait class BasePage(object): def __init__(self, driver): self.driver: webdriver.Chrome = driver def find_id(self, id): ele: WebElement = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, id))) time.sleep(0.5) return ele def find_xpath(self, xpath): ele: WebElement = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.XPATH, xpath))) time.sleep(0.5) return ele #通過文字來定位 def find_text(self, text): ele: WebElement = WebDriverWait(self.driver, 10).until( EC.presence_of_element_located((By.XPATH, "//*[text()= "'"{0}"'"]".format(text)))) time.sleep(0.5) return ele #通過placeholder來定位 def find_placeholder(self, placeholder): ele: WebElement = WebDriverWait(self.driver, 10).until( EC.presence_of_element_located((By.XPATH, "//*[@placeholder="'"{0}"'"]".format(placeholder)))) time.sleep(0.5) return ele def find_tagname(self, tagname): ele: WebElement = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, tagname))) time.sleep(0.5) return ele def sleep(self, seconds): return time.sleep(seconds) def get_cell_data(self, row, col): table = self.driver.find_element_by_tag_name('table') trs = table.find_elements_by_tag_name('tr') cell = trs[row].find_elements_by_tag_name('td')[col] return cell def get_row_len(self): table = self.driver.find_element_by_tag_name('table') trs = table.find_elements_by_tag_name('tr') rows = len(trs) return rows
通過輸入框文字及按鈕文字定位元素以及通過WebDriverWait封裝顯示等待
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.