有看到大多数 BasePage 封装 selenium 如下:
# 定位元素方法
def find_element(self, *selector):
"""
传入元组
"""
try:
element = self.driver.find_element(*selector)
logger.info("通过%s找的元素已被定位 " % str(selector))
return element
except NoSuchElementException as e:
logger.error("找不到元素 %s" % e)
def find_elements(self, *selector):
try:
elements = self.driver.find_elements(*selector)
logger.info('通过%s找到了%d个元素' % (str(selector), len(elements)))
return elements
except NoSuchElementException as e:
logger.error("找不到元素集合 %s" % e)
# 点击元素
def click_element(self, locator:tuple, doc=""):
ele = self.get_element(locator, doc)
try:
ele.click()
except:
logger.exception(f"点击元素 {locator} 失败")
self.save_screenshot(doc)
raise
显然,这个点击元素的封装只是单个元素的点击,如果某页某元素 A 有多个,要点击第 x 个,这个情况就没有办法满足
如果是以上情况,BasePage 应该如何修改其封装呢?