使用python、selenium和phantomjs处理tinymce窗口

使用python、selenium和phantomjs处理tinymce窗口,python,selenium,phantomjs,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_ke

我有下面的代码来登录一个网站并在论坛上发布一些东西

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)时,它工作正常,但使用phantom时,不会发布任何内容


我认为可能的问题是phantom没有按照我的要求填充tinymce文本区域。这个问题有解决方法吗?

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


你能加载那个页面吗?使用类似pdb的调试器。
driver.execute_script("tinyMCE.activeEditor.setContent('%s')" % payload)