python+selenium实例: 将QQ网站上的新闻转载到自己的网站

本文介绍了一个使用Selenium和unittest框架实现的自动化测试案例,该案例演示了如何从腾讯新闻首页抓取文章并发布到WordPress博客的过程。涉及浏览器的启动、登录验证、页面元素定位及操作等关键技术。

#coding: utf-8
import unittest
from selenium import webdriver
import time

class LoginCase(unittest.TestCase):

def setUp(self): #每个用例执行之前执行
print 'before test'
self.dr = webdriver.Chrome()
# self.dr.get('http://localhost/wordpress/wp-login.php')

 

def test_homework_qq_today(self):
title_and_content = self.get_qq_today()
title = title_and_content[0]
content = title_and_content[1]

self.dr.get('http://localhost/wordpress/wp-login.php')
user_name = password = 'admin'
self.login(user_name, password)

self.dr.get('http://localhost/wordpress/wp-admin/post-new.php')
self.by_name('post_title').send_keys(title)
self.set_content_with_html(content)
self.by_name('publish').click()

def get_qq_today(self):
title_and_content = []
self.dr.get('http://www.qq.com/')
time.sleep(2)
qq_today_link = self.by_css('#todaytop a')
title_and_content.append(qq_today_link.text)
href = qq_today_link.get_attribute('href')
print(href)
self.dr.get(href)
time.sleep(2)

title_and_content.append(self.by_id('articleContent').get_attribute('innerHTML'))
print(title_and_content)
return title_and_content

def set_content(self, text):
js = "document.getElementById('content_ifr').contentWindow.document.body.innerText = '%s'" %(text)
print js
self.dr.execute_script(js)

def set_content_with_html(self, html):
html = html.replace("\n", ' ')
js = "document.getElementById('content_ifr').contentWindow.document.body.innerHTML = '%s'" %(html)
print js
self.dr.execute_script(js)

def login(self, user_name, password):
self.by_id('user_login').send_keys(user_name)
self.by_id('user_pass').send_keys(password)
self.by_id('wp-submit').click()

def by_id(self, the_id):
return self.dr.find_element_by_id(the_id)

def by_css(self, css):
return self.dr.find_element_by_css_selector(css)

def by_name(self, name):
return self.dr.find_element_by_name(name)

def tearDown(self): #每个用例执行之后
print 'after every test'
self.dr.quit()

if __name__ == '__main__':
unittest.main()

转载于:https://www.cnblogs.com/bzdmz/p/10631054.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值