2.22 JS处理富文本

前言
    <富文本>这篇解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的问题
一、加载配置
    1.打开博客园写随笔,首先需要登录,这里为了避免透露个人账户信息,我直接加载配置文件,免登录了。
      不懂如何加载配置文件的,看加载firefox配置

二、打开编辑界面
    1.博客首页地址:bolgurl = "http://www.cnblogs.com/"
    2.我的博客园地址:yoyobolg = bolgurl + "yoyoketang"
    3.点击“新随笔”按钮,id=blog_nav_newpost

三、定位iframe
    1.打开编辑界面后先不要急着输入内容,先sleep几秒钟
    2.输入标题,这里直接通过id就可以定位到,没什么难点
    3.接下来就是重点要讲的富文本的编辑,这里编辑框有个iframe,所以需要先切换

四、js输入中文
    1.这里定位编辑正文是定位上图的红色框框位置body部分,也就是id=tinymce

2.定位到之后,用js的方法直接输入,无需切换iframe

3.直接点保存按钮,无需再切回来

五、参考代码:

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# profileDir路径对应直接电脑的配置路径
profileDir = r'C:\xxx\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default'
profile = webdriver.FirefoxProfile(profileDir)
driver = webdriver.Firefox(profile)
bolgurl = "http://www.cnblogs.com/"
yoyobolg = bolgurl + "yoyoketang"
driver.get(yoyobolg)
driver.find_element_by_id("blog_nav_newpost").click()
time.sleep(5)
edittile = u"Selenium2+python自动化23-富文本"
editbody = u"这里是发帖的正文"
driver.find_element_by_id("Editor_Edit_txbTitle").send_keys(edittile)
body = "这里是通过js发的正文内容"
# js处理iframe问题(js代码太长了,我分成两行了)
js = 'document.getElementById("Editor_Edit_EditorBody_ifr")' \
     '.contentWindow.document.body.innerHTML="%s"' % body
driver.execute_script(js)
# 保存草稿
driver.find_element_by_id("Editor_Edit_lkbDraft").click()

最新文章

  1. 【异常】java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte
  2. 读javascript高级程序设计06-面向对象之继承
  3. CodeIgniter - 集成七牛云存储
  4. delphi非IE内核浏览器控件TEmbeddedChrome下载|TEmbeddedChrome代码
  5. 将 Java Spring Framework 应用程序迁移到 Windows Azure
  6. 会话跟踪Cookie与Session
  7. 结对编程1-四则运算(基于GUI)
  8. Java集合详解及List源码分析
  9. Ceph mimic
  10. 记录Vim常用命令
  11. Magento2自定义命令
  12. 寻找遗失的tags
  13. 解题(GoUpstairs -- 上楼梯)
  14. Java学习笔记四:三目运算符与字符串连接符等
  15. 牛刀小试MySQL--GTID
  16. bootstrap中的行和列布局
  17. Hadoop生态集群之HDFS
  18. Mysql date,datetime的区别以及相互转换
  19. C#截取字符串按字节截取SubString
  20. jQuery事件处理(三)

热门文章

  1. Windows与Linux端口占用查询及处理
  2. java.lang.Exception: DEBUG STACK TRACE for PoolBackedDataSource.close().
  3. OSS 实例
  4. 【转】你必须知道的EF知识和经验
  5. JBOSS禁用delete和put方法教程
  6. etymon word flower bee apiary forget out~1
  7. Java ip地址查询,根据ip接口获得ip所在省市区,邮编,运营商等
  8. error: http://ppa.launchpad.net lucid Release: The following signatures couldn&#39;t be verified because
  9. window.open()打开页面
  10. flask使用配置文件