Используйте регулярное выражение для поиска элемента списка и использования этого элемента в операторе if

#python

#python

Вопрос:

 elementItem1 = driver.find_element_by_xpath(xpathItem1)
elementItem2 = driver.find_element_by_xpath(xpathItem2)
elementItem3 = driver.find_element_by_xpath(xpathItem3)
elementItem4 = driver.find_element_by_xpath(xpathItem4)
elementItem5 = driver.find_element_by_xpath(xpathItem5)
elementItem6 = driver.find_element_by_xpath(xpathItem6)
elementItem7 = driver.find_element_by_xpath(xpathItem7)
elementItem8 = driver.find_element_by_xpath(xpathItem8)
elementItem9 = driver.find_element_by_xpath(xpathItem9)
elementItem10 = driver.find_element_by_xpath(xpathItem10)

list = [elementItem1, elementItem2, elementItem3, elementItem4, elementItem5, elementItem6, elementItem7, elementItem8, elementItem9, elementItem10]

patternForFindingListItem = r"some pattern"

for element in list:
    element = element.text # get the text from each element in the list
    match = re.search(patternForFindingListItem, element)
    if match:
        print(item)
        element.click() # element.click() #AttributeError: 'str' object has no attribute 'click'. 
  

Это связано с тем, что, например, elementItem2.text является строкой. Как мне снова вернуть его к элементу elementItem2, чтобы я мог выполнить над ним действие click()?

Ответ №1:

Вам не нужно переопределять переменную элемента, чтобы получить ее текст. Вы можете просто ввести element.text внутри функции поиска регулярных выражений или сохранить element.text внутри другой переменной.

 for element in list: 
    match = re.search(patternForFindingListItem, element.text)
    if match:
        print(item)
        element.click()