Quiero cambiar el nombre de la clase, pero no me funciona.
<div class="vcp-controls-panel vcp-playing hide">FullXpath:
/html/body/div[1]/div/div/div/div[2]/div/div/div[1]/div[1]/div[1]/div/div[1]/div[3]/div/div[1]/div/div[1]/div[9]/div[4] Quiero cambiar vcp-playing hide a vcp-playing show pero no funciona
selects = driver.find_element_by_class_name("vcp-playing hide") for select in selects: driver.execute_script("arguments[0].setAttribute('class', 'vcp-playing show')", select)Como el elemento existente ya tiene establecido el atributo de nombre de clase :
<div class="vcp-controls-panel vcp-playing hide"> Puede eliminar los atributos existentes a través de removeAttribute() establezca los nuevos atributos usando setAttribute() de la siguiente manera:
selects = driver.find_elements(By.CSS_SELECTOR, "div.vcp-controls-panel.vcp-playing.hide") for select in selects: driver.execute_script("arguments[0].removeAttribute('class')", select); driver.execute_script("arguments[0].setAttribute('class','vcp-controls-panel vcp-playing show')", select)Nota : debe agregar las siguientes importaciones:
from selenium.webdriver.common.by import By¿Qué tal hacerlo completamente en javascript?
driver.execute_script(""" selects = document.querySelectorAll('.vcp-playing.hide') selects.forEach(e => e.setAttribute('class', 'vcp-playing show')) """)