[急⚠] BasePage 如何封裝獲取 elements 的第 x 個的點選?

醋精測試媛發表於2020-11-20

有看到大多數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應該如何修改其封裝呢?

相關文章