driver與元素定位的簡單封裝
阿新 • • 發佈:2021-01-12
from logging import Logger from selenium import webdriver from selenium.webdriver.chrome.options import Options # 建立瀏覽器物件 v1.0:必須判斷,不然其他人不清楚。 def open_browserl(browser_type): if browser_type is 'Chrome': driver = webdriver.Chrome() elif browser_type is 'Firefox': driver = webdriver.Firefox()else: driver = webdriver.Chrome() return driver # 建立瀏覽器物件 v2.0:通過 反射機制實現 def open_browser(browser_type): # 新增異常處理機制,確保健壯性 try: if browser_type == 'Chrome': Logger().get_logger().info('Chrome瀏覽器正在啟動......') driver = webdriver.Chrome(options=Options().options_conf())else: Logger().get_logger().info('{0} 瀏覽器正在啟動中...... format (browser_ type)') driver = getattr(webdriver, browser_type)() except Exception as e: Logger().get_logger().info('出現異常,預設呼叫Chrome瀏覽器,異常資訊: \n{0}'.format(e)) driver = webdriver.Chrome() return driverclass WebUIKeys: def __init__(self, browser_type): self.driver = open_browser(browser_type) # 元素定位,8種定位方式 def locator13(self, loc_type, value): if loc_type is 'xpath': return self.driver.find_element_by_xpath(value) elif loc_type is 'id': return self.driver.find_element_by_id(value) # 元素定位v2.0: 基於元組形式來實現元素定位。 ex:(By.ID, " kw' ) # 傳入的By物件要確保是物件,而非str型別