通過輸入框文字及按鈕文字定位元素以及通過WebDriverWait封裝顯示等待

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章