Selenium + Python implementa controle automatizado de data e hora da operação de teste da interface do usuário

De fato, haverá muitos poços para automação, alguns precisam ser preenchidos e outros precisam ser ignorados. Os controles de data e hora são controles que precisamos ignorar. Não pense em como clicar em todos os tipos de controles de data.


Primeiro, vamos dar uma olhada no formulário front-end do controle de data e hora



Sim. Sim. O controle de data e hora é uma caixa de entrada. Você pode inserir a data diretamente como uma caixa de texto normal? Vamos tentar.


Segundo, o experimento

1. O exemplo mais simples, send_keys diretamente. (O campo de data do seletor de datas permite a entrada)

Endereço do teste: http://jqueryui.com/resources/demos/datepicker/other-months.html


de selênio importação webdriver
tempo de
 importação

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. Com atributo somente leitura. (O campo de data do seletor de datas não permite entrada)

Olhando para a próxima figura, existe um atributo readonly = 'true' .Esta caixa de data não permite entrada direta

de selênio importação webdriver
tempo de
 importação

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 = "Erro de análise do KaTeX: 'EOF' esperado, obtido '#' na posição 48:… ('readonly') "# ̲ 2.jQuery, remove attribute ... ('input [id = c-date1]'). Attr (' readonly ', false) "# 3.jQuery, definido como false
js = " $ (' input [id = c-date1] '). attr (' readonly ',' ') " # 4.jQuery, definido como vazio ( O mesmo que 3)
driver.execute_script (js)

driver.find_element_by_id ( 'c- date1 ' ) .send_keys ( '10 /
16/2017 ' ) time.sleep ( 15 )
driver.quit () O exemplo
acima apresenta 4 tipos de métodos js, fique à vontade para usar.


Resumo:

Para lidar com o tópico dos controles de data e hora, é destacado o uso de js no selênio. A idéia geral pode ser resumida como: "Evite o pesado e o leve". Não deixe o Selenium fazer coisas que ele não fará ou não é bom. Se ele tiver que fazê-lo, encontre um ajudante.

Publicado 17 artigos originais · Gosto1 · Visitas 819

Acho que você gosta

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