coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
class BaseAction(object):
def init(self,driver):
self.driver = driver
def find_element(self,ele_type,value):
'''
查询页面元素,,增加限行时间等待
Args:ele_type(str):元素定位方式
value(str):元素定位属性值
'''
ele = None
try:
if ele_type == "id":
WebDriverWait(self.driver,15).until(lambda driver : driver.find_element_by_id(value))
ele = self.driver.find_element_by_id(value)
elif ele_type == 'name':
WebDriverWait(self.driver, 15).until(lambda driver: driver.find_element_by_name(value))
ele = self.driver.find_element_by_name(value)
elif ele_type == 'link_text':
WebDriverWait(self.driver, 15).until(lambda driver: driver.find_element_by_link_text(value))
ele = self.driver.find_element_by_link_text(value)
elif ele_type == 'partial_link_text':
WebDriverWait(self.driver, 15).until(lambda driver: driver.find_element_by_partial_link_text(value))
ele = self.driver.find_element_by_partial_link_text(value)
elif ele_type == 'tag_name':
WebDriverWait(self.driver, 15).until(lambda driver: driver.find_element_by_tag_name(value))
ele = self.driver.find_element_by_tag_name(value)
elif ele_type == 'xpath':
WebDriverWait(self.driver, 15).until(lambda driver: driver.find_element_by_xpath(value))
ele = self.driver.find_element_by_xpath(value)
elif ele_type == 'class_name':
WebDriverWait(self.driver, 15).until(lambda driver: driver.find_element_by_class_name(value))
ele = self.driver.find_element_by_class_name(value)
elif ele_type == 'css_selector':
WebDriverWait(self.driver, 15).until(lambda driver: driver.find_element_by_css_selector(value))
ele = self.driver.find_element_by_css_selector(value)
else :
print ("没有这种元素定位方式{}").format(ele_type)
except NoSuchElementException as e :
print(e.msg)
except TimeoutException as e:
print(e.msg)
else:
return ele
- -