Selenium + Python implementa el control automático de fecha y hora de la operación de prueba de IU

De hecho, habrá muchos pozos para la automatización. Algunos pozos necesitan ser completados, y otros deben ser evitados. Los controles de fecha y hora son controles que debemos omitir. No piense en cómo hacer clic en todo tipo de controles de fecha.


Primero, echemos un vistazo a la forma inicial del control de fecha y hora



Sí, es correcto. El control de fecha y hora es un cuadro de entrada. ¿Puede ingresar la fecha directamente como un cuadro de texto normal? Vamos a intentarlo


Segundo, el experimento.

1. El ejemplo más simple, send_keys directamente. (El campo de fecha del selector de fecha permite la entrada)

Dirección de prueba: http://jqueryui.com/resources/demos/datepicker/other-months.html


de selenio importación WebDriver
 importación tiempo

driver = webdriver.Chrome ()
driver.get ( “http://jqueryui.com/resources/demos/datepicker/other-months.html” )
driver.find_element_by_id ( 'datepicker' ) .send_keys ( “16/10/2017 " )
Time.sleep ( 5 )
driver.quit ()

2. Con atributo de solo lectura. (El campo de fecha del selector de fecha no permite la entrada)

Mirando hacia atrás en la siguiente imagen, hay un atributo readonly = 'true'. Este cuadro de fecha no permite la entrada directa

de selenio importación WebDriver
 importación tiempo

driver = webdriver.Chrome ()
driver.implicitly_wait ( 20 )
driver.get ( “http: //xxxx/pages/systemManagement/login.html” )
driver.find_element_by_xpath ( "/ html / body / div / input" ) .send_keys ( 'xx' )
driver.find_element_by_xpath ( '/ html / body / div1 / input' ) .send_keys ( 'xxx' )
driver.find_element_by_xpath ( '/ html / body / div / div [7]' ) .click ()
driver .find_element_by_xpath ( '/ html / body / li [1] / a' ) .click ()
# js = “document.getElementById ('c-date1'). removeAttribute ('readonly')” # 1. 原 生 js , 移除 属性
# js = “Error de análisis de KaTeX: se esperaba 'EOF', se obtuvo '#' en la posición 48: ... ('readonly') "# ̲ 2.jQuery, remove attribute ... ('input [id = c-date1]'). Attr (' readonly ', false) "# 3.jQuery, establecido en false
js = " $ (' input [id = c-date1] '). attr (' readonly ',' ') " # 4.jQuery, configurado como vacío ( Igual que 3)
driver.execute_script (js)

driver.find_element_by_id ( 'c-date1' ) .send_keys ( '10 /
16/2017 ' ) time.sleep ( 15 )
driver.quit () Lo
anterior presenta 4 tipos de métodos js, no dude en usarlos.


Resumen:

Para abordar el tema de los controles de fecha y hora, se presenta el uso de js en selenio. La idea general se puede resumir como: "Evita lo pesado y lo ligero". No dejes que Selenium haga cosas que no hará o que no es bueno. Si tiene que hacerlo, busca un ayudante.

17 artículos originales publicados · Me gusta1 · Visitas 819

Supongo que te gusta

Origin blog.csdn.net/weixin_45433031/article/details/104957109
Recomendado
Clasificación