simular un onclick con selenium python

Soy bastante nuevo en el selenium y estoy tratando de averiguar cómo simular un solo clic

esto es lo que veo en el código fuente cuando inspecciono la fuente html

   

Lo intenté :

 driver.find_element_by_css_selector("a[onlick*=document.getElementById('pN') .selectedIndex]").click() 

pero recibo una InvalidSelectorException

¿alguna idea?

¡Gracias!

Puedes usar

 from selenium import webdriver browser = webdriver.Chrome(somepath) # You should know what this does. browser.execute_script("document.getElementById('pN').selectedIndex = 0;document.getElementById('optionList').submit();return false") 

Lo que significa que puedes ejecutar el código Javascript simplemente usando .execute_script, Awesome, ¿verdad?

Una InvalidSelectorException no InvalidSelectorException es una expectativa InvalidSelectorException cuando no hay elemento o por experiencia, podría haber un iframe y tendrás que usar .switch_to.frame para poder interactuar con él. Además, me gusta usar XPath (el más confiable siempre), toma un poco de tiempo acostumbrarme, pero con una o dos horas de práctica puedes obtenerlo.

JeffC tiene un buen punto, la estructura del HTML, JS siempre puede cambiar. Puede usar find_element_by_xpath(xpath).click() pero también hay formas más dinámicas de predecir si la estructura va a cambiar, usando algo como find_element_by_name u otro que esté disponible :

 find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector 

¿Buscaste la excepción en Google? Significa que su selector no es válido. Los selectores de CSS como el que está intentando usar están en la tag[attribute='value'] formulario tag[attribute='value'] . No tiene el valor entre comillas … que no será posible en este caso específico porque su valor ya contiene comillas simples.

Debido a que la etiqueta A encierra la etiqueta IMG, puede hacer clic en la etiqueta IMG y obtener el mismo efecto. Un selector de CSS como el de abajo debería funcionar.

 img[src='images/ListingOptionSearch.jpg'] 

Hay otros selectores que probablemente funcionen, pero con un enlace a la página, etc. Me gustaría saber si serían únicos.