2013-09-07 7 views
4

가 여기 내 스프린터 코드 -스플린터를 사용하여 Enter를 클릭하려면 어떻게해야합니까?

b = Browser() 
b.visit("http://boingboing.net") 
b.fill("q", "OpenXC") 

이 시점에서, 나는 일어날 수있는 검색 누르면 "입력"하고 싶습니다.

이것은 Splinter 자습서 페이지의 예제와 매우 유사합니다. 이 경우 실제로 버튼 요소가 없습니다.

이 검색 창은 "cse-search-box"라는 ID를 가진 Google 검색 창인 것으로 나타났습니다. 여기서 검색을 시작하는 방법을 모르겠습니다.

도와 주시겠습니까?

는 Metaphy의 (덕분에, BTW) 아래 코드는 나를 위해 역 추적을 생성 -

역 추적 (마지막으로 가장 최근 통화) : 파일 "/Users/muthu/Desktop/boing.py", 5 호선, in b.execute_script ('document.getElementsByName ("f") [0] .submit()') 파일 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ splitter/driver/webdriver/init .py ", 58 행, execute_script self.driver.execute_script (스크립트) 파일"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site -피 ackages/selenium/webdriver/remote/webdriver.py ", 줄 397, execute_script { '스크립트': 스크립트, 'args': converted_args}) [ 'value'] 파일"/Library/Frameworks/Python.framework/ 버전/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py ", 줄 165, 실행 self.error_handler.check_response (응답) 파일"/Library/Frameworks/Python.framework /Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py ", 줄 158, check_response에서 예외 클래스 올리기 (메시지, 화면, 스택 트레이스) WebDriverException : 메시지 : evaluate.js로드 실패 '; 스택 트레이스 : 에서 R (파일 : ///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/[email protected]/components/driver_component.js : 8360) fxdriver.Timer.prototype.runWhenTrue/g의 (파일 : ///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/[email protected]/components/driver_component.js : 392) fxdriver.Timer.prototype.setTimeout/< .notify (파일에서 : ///var/folders/5r/06jrtyyn2kd8ty05m71lm0hr0000gn/T/tmpBFCIVe/extensions/[email protected]/components/driver_component.js:386)

답변

3

은 내가 http://boingboing.net 사이트에 액세스 할 수 없습니다, 그래서 바이두을. 예 :

,210
from splinter.browser import Browser 
b = Browser('firefox') 
b.visit('http://www.baidu.com') 
b.fill('wd', 'test') 
b.execute_script('document.getElementsByName("f")[0].submit()') 

새로운 대답은 :

browser.fill('some_name', 'some_value\r') 
+0

위의 코드는 역 추적을 생성합니다. 자세한 내용은 원본 게시물을 참조하십시오. –

+0

원칙적으로 여기서 무엇을하는지 볼 수 있습니다. 필자의 경우 양식에 이름 속성이 없습니다. 그래서 나는'document.getELementsByTagName ('form') [0] .submit()'을하는 것을 끝내었다. 그것은 원래 게시물에서와 같은 추적을 생성. –

+1

http://stackoverflow.com/questions/18114544/seleniumwebdrivererrorjavascripterror-waiting-for-evaluate-js-load-failed, "evaluate.js load failed"에서 비슷한 질문을 검색 할 수 있습니다. – metaphy