Splinter学习--模拟攥写博客园随笔
为了验证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学习--模拟攥写博客园随笔相关推荐
- 转 学习:设置Windows live writer “不发布”到博客园随笔
66:呵呵,标题好拗口 那里能设置Windows live writer 发布到博客园随笔,默认选项为不发布? 就是这里: 高级选项 发布 jchdong 初学一级 专家分-80 提问于2010-03 ...
- 前端之模拟数据 - HackerVirus - 博客园
阅读目录 玩转前端之模拟数据 回到目录 玩转前端之模拟数据 博客园主页:http://www.cnblogs.com/handoing/ 是否还在为前端模拟数据头疼? 是否还在为后端返回数据格式较多内 ...
- .NET轻松写博客园爬虫
爬虫,是一种按照一定的规则,自动地抓取网站的程序或者脚本.`.NET`写爬虫非常简单,并能轻松优化性能.今天我将分享一段简短的代码,爬出博客园前200页精华内容,然后通过微小的改动,将代码升级为多线程 ...
- 【新星计划·第三季】一篇关于学习算法和写博客的心得和经验
⭐️引言⭐️ 大家好啊,我是执梗.最近新星计划第三季又新开了赛道,目的在于帮助想写博客的小白更好的融入CSDN这个大家庭.我是本季[算法]赛道的导师,所以针对学习算法以及如何写好算法博客提出一些我自己 ...
- python 装饰器写博客园
需求 1),启动程序,首页面应该显示成如下格式: 欢迎来到博客园首页 1:请登录 2:请注册 3:文章页面 4:日记页面 5:评论页面 6:收藏页面 7:注销 8:退出程序 2),用户输入选项,3~6 ...
- 博客园随笔添加自己的版权信息 [转]
这几日,看了一些博客.发现在一些博客的底部添加了一些版权信息,很新颖.如下图: 写信给博客园的客服,问如何做出来的.回复是添加自己的"签名".无语了,只能自己研究了. 在分析了别人 ...
- 用markdown写博客园
/p/cnblogs_markdown.html markdown的使用:https://blog.csdn.net/a1b2c300/article/details/53891125 吗都是 不是真 ...
- 用Word写博客园文章
http://www.cnblogs.com/dunitian/services/metablogapi.aspx 效果如下: 啦啦啦啦啦啦我是卖报的小行家 /// <summary> / ...
- idoc java_IDOC - 学习笔记NO.1 - 博客园
1.IDOC:intermidiate document 中间文档 2.IDOC结构包括一个控制记录,一段或多段数据记录以及一段或多段状态记录,学过网络原理的人,不难理解,这就像TCPIP报文一样,控 ...
最新文章
- Form表单提交前进行JS验证的3种方式
- Nature:肠道菌群代谢物调节肠道与免疫
- 开启AngularJS学习之旅
- C++中的虚继承 重载隐藏覆盖的讨论
- 为iframe添加鼠标事件
- poj 3414 Pots BFS
- 这家总资产排名第一的银行,为什么叫“小”摩?
- 计算机组成与体系结构——存储器分层体系结构
- Pam x86_64 and i686 have conflicting man pages
- excel怎么设置自动计算_Excel智能化考勤表,自带万年历设置,考勤加班计算,无脑轻松...
- WIN10 无法保存游戏配置文件 每次进游戏都需要重新设置的问题解决方案
- 赛制出炉!西门子白帽黑客大赛吹响集结号
- shell 脚本切换用户执行当前脚本命令
- CSS animation-play-state用法
- Python 字符串
- 【总结】alter table *** add constraint *** 用法 . 建立约束 ,主键、外键的SQL语句写法
- vue移动端和pc适配,搭建网站布局
- 百度云高速下载Pandownload
- 浅论人工智能以及朱迪亚·珀尔(Judea Pearl)的因果推理误区 道翰天琼认知智能
- 2020年字节跳动面试题
热门文章
- 一个程序员竟然喜欢上了写诗
- 【ECharts学习】—实现中国地图
- python 协程库gevent学习 -- 超时、互斥锁(BoundedSemaphore)、local
- wps里面如何使用计算机,wps表格中怎么在多行之间每行插一行?
- python连接网络摄像头安装图解_python 连接摄像头
- 2020年平时使用的资源网站
- 通用的后台内部管理系统整站前端源码,功能齐全
- 苹果5越狱教程_iOS13.5越狱教程
- AssertionError: Attempted unscale_ but _scale is None
- 计算机课word反思,教学反思Word文档