2012-05-11 2 views
1

저는 엑셀에서 웹 양식으로 많은 셀 (~ 1000)을 입력하기 위해 셀렌과 xlrd 모듈을 사용하고 있습니다. 셀렌의 send_keys를 사용하여이 작업을 수행하는 코드를 성공적으로 작성했지만 현재 양식을 제출하기 전에 입력 처리로 인해 많은 시간 지연이 있습니다. 나는 현재 모든 셀의 값을 포함하는 하나의 큰 문자열을 컴파일하고 다음과 같이 한 번에 양식에 넣어 send_keys를 사용 : 나는 단순히 복사 할 때 것으로 나타났습니다Python : 웹 양식에 큰 목록을 효율적으로 입력하고 있습니까?

for z in range(1000): 
     ss = ss + (str(sh.row_values(z)[1])) + "\n" 
form.send_keys(ss) 

및 1000 엑셀 붙여 넣기 셀을 수동으로 양식에 추가하기 전에 제출하기 전에 처리 지연이 거의 없습니다. 따라서 셀렌의 send_keys를 사용하지 않고 원하는 것을 달성하는보다 효율적인 방법이 있다고 상상해보십시오. 나는 어떤 도움을 주셔서 감사합니다.

+0

헤드리스 시스템을 사용하고 HTTP 요청으로 양식을 제출 한 다음 응답을 검사하는 방법을 고려할 수 있습니까? –

답변

0

은 사용을 고려하다 javascript 대신 필드의 값을 직접 설정하십시오.

The answer here은 python에서 셀렌을 사용하여 javascript를 실행하는 방법을 보여줍니다. 텍스트 필드의 값을 설정할 때 작업이 거의 즉각적이므로 양식 처리의 효과가 느려져서는 안됩니다.

셀레늄 제공 API 대신 자바 스크립트를 사용하자 마자 내장 된 기능 중 일부가 손실되기 시작합니다. 예를 들어 페이지가 아직로드되지 않았고 실행하려고하면 javascript를 사용하면 요소를 찾지 못해 즉시 조치가 실패합니다. Selenium은 결국로드 될 요소를 찾지 못하면 내용을 조금 기다립니다.

관련 문제