为了验证Splinter的多种动作,这里将使用Splinter模拟博客园里面新增随笔的操作。

第一步:登录博客园,方法同Splinter学习--初探2,模拟博客园登录

第二步:跳转到“添加随笔”界面,跳转步骤为点击“我的博客” --> “新随笔“

  这里通过 find_link_by_text(text)方法查找相应链接,然后点击,如:

browser.find_link_by_text("我的博客").first.click()

等价于 browser.click_link_by_text("我的博客")

第三步:填写标题/内容等

通过审查元素获取要填写或选择内容对应的页面元素,分别进行操作。

  1)标题

  直接找到其对应元素的ID为Editor_Edit_txbTitle,然后利用fill()方法进行填写

  2)内容

内容区域对应一个ID为Editor_Edit_EditorBody_ifr的iframe,且该iframe中内嵌的html文档仅有head和body,而body中在输入内容后会进行动态填充,如下图:

  

  这里,可以通过 Browser对象的execute_script()方法填写主体内容部分,如下:

  iframe.execute_script('document.getElementById("tinymce").innerHTML = "<p>Hello world!</p><p>First Splinter test!</p>"')

  注意body到ID为tinymce。

  

  3)网站分类中选择项

   网站分类中的选择项为单选项,可直接定位到相应的选项,然后调研check()方法选中,注意必须先点击“网站分类”,否则其中的元素是不可见的。

  # 编程语言选中python
  browser.find_by_id("Editor_Edit_APOptions_APSiteCategory_Link").click()   # 打开网站分类
  time.sleep(1)
  browser.find_by_id("site_categroy_108696").first.check()        # 点击python
  browser.find_by_id("site_categroy_108737").first.check()         # 再点击HTML5,覆盖前面的选择

  最终的结果以最后一个选择项为准

  4)选择“不在首页显示”,“不允许评论”

  博客园默认随笔是“可评论的”,这里将其去掉,不允许评论,利用uncheck()方法可实现取消已选择项。

  # 不显示在首页,不允许评论
  browser.find_by_id("Editor_Edit_Advanced_chkDisplayHomePage").first.uncheck()
  browser.find_by_id("Editor_Edit_Advanced_chkComments").first.uncheck()

  5)存为草稿

具体代码如下:

  

1 defget_publish_page(self):2         """
3 跳转到"添加随笔"页面4 :return:5         """
6         if self.browser isNone:7             return
8         else:9             #self.browser.find_by_id("header_user_right").first.find_by_xpath("a")
10             self.browser.click_link_by_text("我的博客")11             #<==> self.browser.find_link_by_text("我的博客").first.click()
12             time.sleep(3)13             self.browser.find_link_by_text("新随笔").first.click()14
15     defwrite_blog(self):16         """
17 简单写一个博客18 :return:19         """
20         #标题
21         self.browser.find_by_id("Editor_Edit_txbTitle").first.fill("Splinter Study")22
23         #填写内容
24         with self.browser.get_iframe("Editor_Edit_EditorBody_ifr") as iframe:25             #iframe.find_by_xpath("browserody").first.fill("Writing success?")
26             iframe.execute_script('document.getElementById("tinymce").innerHTML = "<p>Hello world!</p><p>First Splinter test!</p>"')27
28         #编程语言选中python
29         self.browser.find_by_id("Editor_Edit_APOptions_APSiteCategory_Link").click()30         time.sleep(1)31         self.browser.find_by_id("site_categroy_108696").first.check()32         self.browser.find_by_id("site_categroy_108737").first.check()33
34         #不显示在首页,不允许评论
35         self.browser.find_by_id("Editor_Edit_Advanced_chkDisplayHomePage").first.uncheck()36         self.browser.find_by_id("Editor_Edit_Advanced_chkComments").first.uncheck()37
38         #存为草稿
39         self.browser.find_by_id("Editor_Edit_lkbDraft").first.click()

博客园模拟添加随笔

转载于:https://www.cnblogs.com/java-wgm/p/5178223.html

Splinter学习--模拟攥写博客园随笔相关推荐

  1. 转 学习:设置Windows live writer “不发布”到博客园随笔

    66:呵呵,标题好拗口 那里能设置Windows live writer 发布到博客园随笔,默认选项为不发布? 就是这里: 高级选项 发布 jchdong 初学一级 专家分-80 提问于2010-03 ...

  2. 前端之模拟数据 - HackerVirus - 博客园

    阅读目录 玩转前端之模拟数据 回到目录 玩转前端之模拟数据 博客园主页:http://www.cnblogs.com/handoing/ 是否还在为前端模拟数据头疼? 是否还在为后端返回数据格式较多内 ...

  3. .NET轻松写博客园爬虫

    爬虫,是一种按照一定的规则,自动地抓取网站的程序或者脚本.`.NET`写爬虫非常简单,并能轻松优化性能.今天我将分享一段简短的代码,爬出博客园前200页精华内容,然后通过微小的改动,将代码升级为多线程 ...

  4. 【新星计划·第三季】一篇关于学习算法和写博客的心得和经验

    ⭐️引言⭐️ 大家好啊,我是执梗.最近新星计划第三季又新开了赛道,目的在于帮助想写博客的小白更好的融入CSDN这个大家庭.我是本季[算法]赛道的导师,所以针对学习算法以及如何写好算法博客提出一些我自己 ...

  5. python 装饰器写博客园

    需求 1),启动程序,首页面应该显示成如下格式: 欢迎来到博客园首页 1:请登录 2:请注册 3:文章页面 4:日记页面 5:评论页面 6:收藏页面 7:注销 8:退出程序 2),用户输入选项,3~6 ...

  6. 博客园随笔添加自己的版权信息 [转]

    这几日,看了一些博客.发现在一些博客的底部添加了一些版权信息,很新颖.如下图: 写信给博客园的客服,问如何做出来的.回复是添加自己的"签名".无语了,只能自己研究了. 在分析了别人 ...

  7. 用markdown写博客园

    /p/cnblogs_markdown.html markdown的使用:https://blog.csdn.net/a1b2c300/article/details/53891125 吗都是 不是真 ...

  8. 用Word写博客园文章

    http://www.cnblogs.com/dunitian/services/metablogapi.aspx 效果如下: 啦啦啦啦啦啦我是卖报的小行家 /// <summary> / ...

  9. idoc java_IDOC - 学习笔记NO.1 - 博客园

    1.IDOC:intermidiate document 中间文档 2.IDOC结构包括一个控制记录,一段或多段数据记录以及一段或多段状态记录,学过网络原理的人,不难理解,这就像TCPIP报文一样,控 ...

最新文章

  1. Form表单提交前进行JS验证的3种方式
  2. Nature:肠道菌群代谢物调节肠道与免疫
  3. 开启AngularJS学习之旅
  4. C++中的虚继承 重载隐藏覆盖的讨论
  5. 为iframe添加鼠标事件
  6. poj 3414 Pots BFS
  7. 这家总资产排名第一的银行,为什么叫“小”摩?
  8. 计算机组成与体系结构——存储器分层体系结构
  9. Pam x86_64 and i686 have conflicting man pages
  10. excel怎么设置自动计算_Excel智能化考勤表,自带万年历设置,考勤加班计算,无脑轻松...
  11. WIN10 无法保存游戏配置文件 每次进游戏都需要重新设置的问题解决方案
  12. 赛制出炉!西门子白帽黑客大赛吹响集结号
  13. shell 脚本切换用户执行当前脚本命令
  14. CSS animation-play-state用法
  15. Python 字符串
  16. 【总结】alter table *** add constraint *** 用法 . 建立约束 ,主键、外键的SQL语句写法
  17. vue移动端和pc适配,搭建网站布局
  18. 百度云高速下载Pandownload
  19. 浅论人工智能以及朱迪亚·珀尔(Judea Pearl)的因果推理误区 道翰天琼认知智能
  20. 2020年字节跳动面试题

热门文章

  1. 一个程序员竟然喜欢上了写诗
  2. 【ECharts学习】—实现中国地图
  3. python 协程库gevent学习 -- 超时、互斥锁(BoundedSemaphore)、local
  4. wps里面如何使用计算机,wps表格中怎么在多行之间每行插一行?
  5. python连接网络摄像头安装图解_python 连接摄像头
  6. 2020年平时使用的资源网站
  7. 通用的后台内部管理系统整站前端源码,功能齐全
  8. 苹果5越狱教程_iOS13.5越狱教程
  9. AssertionError: Attempted unscale_ but _scale is None
  10. 计算机课word反思,教学反思Word文档