Как найти последний веб-элемент с помощью атрибута classname через Selenium и Python
getphone = driver.find_element_by_class_name('_3ko75')[-1]
phone = getphone.get_attribute("title")
Не работает Мне нужно получить заголовок в строковом формате.
Exception has occurred: TypeError
'WebElement' object is not subscriptable
File "C:\Users\vmaiha\Documents\Python Projects\Project 01\WP_Answer.py", line 43, in check
getphone = driver.find_element_by_class_name('_3ko75')[-1]
1 ответ
Решение
Основываясь на ваших испытаниях кода, чтобы получить заголовок последнего WebElement на основе значения атрибута classname, вы можете использовать любую из следующих стратегий локатора:
С помощью
XPATH
,find_element*
а такжеlast()
:print(driver.find_element_by_xpath("//*[@class='_3ko75'][last()]").get_attribute("title"))
С помощью
XPATH
,find_elements*
а также[-1]
:print(driver.find_elements_by_xpath("//*[@class='_3ko75']")[-1].get_attribute("title"))
Желательно использовать WebDriverWait:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//*[@class='_3ko75'][last()]"))).get_attribute("title"))
или
print(WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//*[@class='_3ko75']")))[-1].get_attribute("title"))