2014-01-18 3 views
5

나는이 포럼핸들 TinyMCE에 창

driver = webdriver.PhantomJS() 

Username = "username" 
Password = "password" 

driver.get(LoginPage) 
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "login"))) 

driver.find_element_by_name("usr").send_keys(Username) 
driver.find_element_by_name("pas").send_keys(Password) 

driver.find_element_by_id("login").click() 

payload = "some text" 

driver.get(ForumPage) 
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "submitbtn"))) 


driver.switch_to_frame("tinymcewindow_ifr") 
driver.find_element_by_id("tinymce").clear() 
driver.find_element_by_id("tinymce").send_keys(payload) 
driver.switch_to_default_content() 

driver.find_element_by_id("submitbtn").click() 

driver.quit() 

나는 시도하고 잘 작동 (파이어 폭스와 같은) 다른 브라우저를 사용하여 뭔가를 사이트에 로그인 및 게시에 대한 다음 코드 , 그러나 유령으로 아무것도 게시되지 않습니다.

필자가 생각할 수있는 것은 유령이 내가 원하는대로 주석 텍스트 영역을 채우지 않는다는 것이다. 이 문제에 대한 수정 사항이 있습니까?

+0

당신은 할 수와

driver.switch_to_frame("tinymcewindow_ifr") driver.find_element_by_id("tinymce").clear() driver.find_element_by_id("tinymce").send_keys(payload) driver.switch_to_default_content() 

해당 페이지를로드 교체? pdb와 같은 디버거를 사용하십시오. – BigSack

답변

3

tinymce js API를 사용하십시오.

driver.execute_script("tinyMCE.activeEditor.setContent('%s')" % payload)