2014-01-18 5 views
5

У меня есть следующий код для регистрации на сайте и разместить что-то в форумеручки с питоном, селеном и phantomjs

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() 

Когда я пытаюсь использовать другой браузер (например, Firefox) он отлично работает , но с фантом ничего не опубликовано.

Возможно, проблема в том, что фантом не заполняет текстовую область tinymce, как я этого хочу. есть ли какое-либо исправление для этой проблемы?

+0

Вы сможете загрузить эту страницу? Используйте отладчик, например pdb. – BigSack

ответ

3

Используйте API tinymce js.

Заменить

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.execute_script("tinyMCE.activeEditor.setContent('%s')" % payload) 
Смежные вопросы