Quiero que se haya hecho clic en algún elemento de la página. Pero el clic de Selenium no funciona. Esta parte de mi código:
username_form = driver.find_element_by_id('form3-username') password_form = driver.find_element_by_id('form3-password') username_form.send_keys('SomeLogin') password_form.send_keys('SomePass') driver.find_element_by_xpath("//div[@class='one-factor']/button").click() element = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, "//div/a[@id='notify-toggle' and not(@disabled)]")) ) element.click()y parte de la página que estoy procesando:
<a id="notify-toggle" class="toggle link"> <span title="Уведомления" class="data-count" data-count="0" data-icon=""> </span> </a> Promlem es element.click() no funciona. Me familiaricé con alguna solución a mi problema, pero encontré que no funcionó para mí. Intenté usar la expresión xpath con not (@disabled) y otras soluciones, pero nadie me ayudó. No tengo ni idea de por qué el click no funciona y estaré encantado de recibir cualquier pista.
Diríjase al <span> interior que induce WebDriverWait para element_to_be_clickable() y puede usar cualquiera de las siguientes estrategias de localización :
Usando CSS_SELECTOR :
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.toggle.link#notify-toggle span.data-count:not(disabled)[title][data-icon]"))).click()Usando XPATH :
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='toggle link' and @id='notify-toggle']//span[@class='data-count' and @title][@data-icon and not(@disabled)]"))).click()Nota : debe agregar las siguientes importaciones:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as ECPuede encontrar un par de discusiones detalladas relevantes en: