标签:vtk class box nap vb6 reg bgp aot lod
目的:使用pyhton下的unittest单元测试框架并结合selenium的webdriver来实现将腾讯首页的今日话题下的内容自动发表达到自己的cnblog里。
创建QQDailyTopic类继承unittest的TestCase类,setUp()方法用于测试执行前的初始化工作,而最后的tearDown()与setUp()方法相呼应,用于测试执行之后的善后工作。
python 3.x 和 selenium 2
实现代码如下:
1 #coding=utf-8 2 from selenium import webdriver 3 import unittest 4 from time import sleep 5 6 class QQDailyTopic(unittest.TestCase): 7 8 def setUp(self): 9 self.dr = webdriver.Firefox() 10 self.title, self.content = self.get_title_and_content_from_qq_daily_topic() 11 12 def get_qq_daily_topic_url(self): 13 return self.dr.find_element_by_css_selector(‘#todaytop a‘).get_attribute(‘href‘) 14 15 def get_title_and_content_from_qq_daily_topic(self): 16 self.dr.get(‘http://www.qq.com/‘) 17 url = self.get_qq_daily_topic_url() 18 self.dr.get(url) 19 title = self.dr.find_element_by_id(‘sharetitle‘).text 20 content = self.dr.find_element_by_id(‘articleContent‘).get_attribute(‘innerHTML‘) 21 return (title, content) 22 23 def login(self, username, password): 24 self.dr.find_element_by_id(‘input1‘).send_keys(username) 25 self.dr.find_element_by_id(‘input2‘).send_keys(password) 26 self.dr.find_element_by_id(‘signin‘).click() 27 28 #借助js向添加新随笔的富文本框插入指定内容 29 def set_content(self, text): 30 text = text.strip() 31 js = ‘document.getElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML=\‘%s\‘‘ %(text) 32 print(js) 33 self.dr.execute_script(js) 34 35 def test_transpond_qq_daily_topic(self): 36 self.dr.get(‘https://passport.cnblogs.com/user/signin‘) 37 self.login(‘kemi_xxxx‘, ‘kemi_xxxx‘)#自己博客园用户名和密码 38 sleep(3) 39 40 self.dr.get(‘https://i.cnblogs.com/EditPosts.aspx?opt=1‘) 41 self.dr.find_element_by_id(‘Editor_Edit_txbTitle‘).send_keys(self.title) 42 self.set_content(self.content) 43 self.dr.find_element_by_id(‘Editor_Edit_lkbPost‘).click() 44 45 def tearDown(self): 46 sleep(5) 47 self.dr.quit() 48 49 if __name__ == ‘__main__‘: 50 unittest.main()
实现效果如下:
用python+selenium将腾讯首页今日话题的内容自动发表到自己cnblog里
标签:vtk class box nap vb6 reg bgp aot lod
原文地址:http://www.cnblogs.com/cnkemi/p/6160844.html