Следующее выражение XPath выберет ожидаемый элемент button
.
//button[span[@class="mat-button-wrapper"]/mat-icon[.="search"]]
Мы ищем элемент button
с дочерним span
, содержащим атрибут c и который выполняет следующее условие: содержимое его mat-icon
дочернего элемента - «search
».
РЕДАКТИРОВАТЬ: Если это не сработает, активируйте заданное c ожидаемое условие, element_to_be_clickable
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//button[span[@class="mat-button-wrapper"]/mat-icon[.="search"]]'))).click()
Импорт:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
Если по-прежнему не удается, используйте JS или A C, чтобы щелкнуть элемент. С Javascript
:
driver.execute_script("arguments[0].click();", WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//button[span[@class="mat-button-wrapper"]/mat-icon[.="search"]]'))))
С Action Chains
:
ActionChains(driver).move_to_element(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//button[span[@class="mat-button-wrapper"]/mat-icon[.="search"]]')))).click().perform()
Импорт:
from selenium.webdriver import ActionChains