Acceso a elementos en la sombra DOM
Es posible queencontrar elementos dentro del Shadow DOM con python-selenium?
Ejemplo de caso de uso:
tengo estoinput
contype="date"
:
<input type="date">
Y me gustaría hacer clicel botón selector de fecha a la derecha y elija una fecha del calendario.
Si inspecciona el elemento en Chrome Developer Tools y expande el nodo raíz raíz de la entrada de fecha, verá que el botón aparece como:
<div pseudo="-webkit-calendar-picker-indicator" id="picker"></div>
Captura de pantalla que demuestra cómo se ve en Chrome:
Encontrar el botón "selector" por id resultados enNoSuchElementException
:
>>> date_input = driver.find_element_by_name('bday')
>>> date_input.find_element_by_id('picker')
...
selenium.common.exceptions.NoSuchElementException: Message: no such element
También he tratado de usar::shadow
y/deep/
localizadores como se sugiereaquí:
>>> driver.find_element_by_css_selector('input[name=bday]::shadow #picker')
...
selenium.common.exceptions.NoSuchElementException: Message: no such element
>>>
>>> driver.find_element_by_css_selector('input[name=bday] /deep/ #picker')
...
selenium.common.exceptions.NoSuchElementException: Message: no such element
Tenga en cuenta que puedo cambiar la fecha en la entrada enviándole claves:
driver.find_element_by_name('bday').send_keys('01/11/2014')
Pero, quiero establecer la fecha específicamente eligiéndola de un calendario.