处理与python,selenium和phantomjs的tinymce窗口

时间:2014-01-18 11:03:42

标签: python selenium 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 textarea。这个问题有什么问题吗?

1 个答案:

答案 0 :(得分:3)

使用tinymce js API。

替换

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)