2011-11-29 4 views
2

내가 자동으로 웹 양식을 채워 셀레늄을 사용하여 파이썬 스크립트를 작성하고 (헬프 데스크 발권 시스템)에서 파이썬 에뮬레이션 키 입력리눅스

이에있는 요소는 티켓의 몸이 요소가없는 것입니다 id는 Selenium이 인식 할 수 있도록 body에 입력하기 위해 title 요소를 찾고 tab 키를 누른 다음 본문에 입력하기 시작합니다.

der = "/t this is the desc" 
driver.find_element_by_id("title").send_keys(der) 

문제는, 나를 위해이 코드 나던 작업을 : 여기

몸에 메시지를 기록하는 코드입니다. 난 정말해야 할 일은 다음과 같을 것이다 :
body = open(email.txt) 
driver.find_element_by_id("title").send_keys("/t" + body) 

그래서 나는 그 티켓의 몸에 몸 변수에 저장되는 쓰기는 탭 키를, 제목 요소를 찾아 누르세요. 유일한 문제는 구문이 나쁘다는 것입니다.

나는 SendKeys를 보았다. Fedora 16을 사용하고 있습니다.

어떤 도움이나 권장 사항도 크게 부탁드립니다.

감사합니다.

+1

당신은 티켓의 몸이 셀레늄이 인식하는 요소 ID가없는 언급. CSS 로케이터를 사용하여 선택할 수 있습니까? driver.find_element_by_css_selector()를 사용하거나 xpath driver.find_element_by_xpath()를 사용하여 최후의 수단으로 사용하십시오. – Isaac

+0

바인딩 문서 (http://readthedocs.org/docs/selenium-python/en/latest/locating-elements.html)를 발견하고 요소를 찾는 방법을 발견했습니다. 나는 FireBug를 insatlled했고, 페이지를 지났다. 나는 유망하게 보인 class_name을 찾았고, 결국 일을 끝냈다. 내 코드가 driver.find_element_by_class_name ("ze_area")으로 끝났습니다. send_keys ("this is the body") –

답변

2

코드에 버그가 있습니다. 이 변경 :

body = open(email.txt) 

에 :

body = open("email.txt").read() 
+0

대단히 감사합니다! –

+0

당신은 오신 것을 환영합니다. 내 대답을 받아들이는 것은 당연히 인정 될 것이다! :-) –

+0

글쎄, 기술적으로, 내 원래 코드는 이것을 가지고 있었고, 진짜 문제는 아이작에 의해 위에 응답되었다. –