單一的元素定位方法不能滿足所有元素的定位,可以根據每個元素的特點來找到合適的方法,可以參考下圖的方法:
elementFind.py
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from common.log import logclass ElementFind(object):def __init__(self, driver):self.driver = driverdef find_element(self, locator, timeout=2, internal=0.2):""":param locator::param timeout::param internal::return:"""for _ in range(2):log.info('001:step --> find_element:{ele} time={num}'.format(ele=locator, num=_ + 1))try:element = WebDriverWait(self.driver, timeout, internal).until(EC.presence_of_element_located(locator))return elementexcept Exception as e:log.warning('[BS]_404:unknown error! %s' % e)break
用百度頁面搜索做例子,輸入框和查詢框通過id定位如下: