1、Baidu_Serch.py
#coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException,TimeoutException
#from selenium.common.exceptions import
from selenium.webdriver.support.ui import WebDriverWait # available since
from selenium.webdriver.common.keys import Keys
from time import sleep
import os,time
driver = webdriver.Chrome()
print u"加载驱动完成.."
driver.get("https://ww.baidu.com")#加载页面
print u"加载页面完成.."
time.sleep(1)
# 方法一
try:
assert u"百度一下" in driver.title
print ('Assertion baidu title pass.')
except Exception as e:
print ('Assertion baidu title fail.', format(e))
driver.maximize_window() # 浏览器全屏显示
print u"最大化页面窗口完成.."
elem = driver.find_element_by_name("wd") # Find the query box
elem.send_keys(u"今日头条" + Keys.RETURN)
#elem.submit() 提交表单方法
print u"输入搜索关键字..."
time.sleep(1) # Let the page load, will be added to the API
'''
#driver.find_element_by_id("kw").clear()
#driver.find_element_by_id("kw").send_keys(u"pyse自动化测试")
#driver.type("//*[@id='kw']",u"pyse自动化测试")
#driver.find_element_by_id("su").send_keys(Keys.ENTER)
#driver.click("//*[@id='su']")
#也可定位登陆按钮,通过enter(回车)代替click()
driver.find_element_by_id("su").send_keys(Keys.ENTER)
'''
#方法一 采用包含判断,建议第一种
try:
driver.find_element_by_xpath("//*[@id='su']")
print "校验通过,百度一下按钮存在"
except NoSuchElementException:
assert 0, "校验不通过"
#raw_input()#停止在当前光标处;
# 方法二
#time.sleep(1)
sleep(1)
#验证 今日头条_百度搜索 标题是否存在
if u"今日头条_百度搜索" == driver.title :
print ('Assertion dayevenery title pass.')
else:
print ('Assertion dayevenery title fail.')
print driver.title
#raw_input()#停止在当前光标处;
#更多验证方法
'''
try:
self.assertEqual(u"今日头条_百度搜索", driver.title)
print u"标题验证 Pass"
except AssertionError as e:
print u"找不到这个标题"
try:
assert u"今日头条_百度搜索" in driver.title
self.assertFalse(driver.title)
print u"标题验证 True"
except AssertionError as e:
print u"找不到这个标题 Flase"
#判断页面上有无id为kw的元素
if is_element_exist("#kw") :
driver.find_element_by_id("kw").send_keys("")
#判断页面有无标签为input元素
if is_element_exist("input") :
driver.find_element_by_tag_name("input").send_keys("eveneryday news!")
'''
#==================================
try:
# we have to wait for the page to refresh, the last thing that seems to be updated is the title
WebDriverWait(driver, 10).until(lambda driver : driver.title.lower().startswith(""))
# You should see "cheese! - Google Search"
print u"等待时间,打印当前页面的标题 :"+driver.title
finally:
print (u"-----> 请按Enter 键进行下一步操作...")
raw_input()#停止在当前光标处;
#driver.close()
print u"执行完成,即将关闭驱动..."
driver.quit()#与close方法相同
driver.quit()
#==================================
2、ClikButton.py
#!C:/Python27
#coding=utf-8
from selenium import webdriver
#from selenium.webdriver.support.ui import WebDriverWait
#from selenium.webdriver.support.wait import WebDriverWait#WebDriverWait 导入
from selenium.webdriver.common.keys import Keys
import os,time
driver = webdriver.Chrome()
driver.get("https://cas.sf-express.com/cas/login?service=http%3A%2F%2Fhos.sf-express.com%2Fframe.pvt&apptiket=dbe979f1b41f6ea23622b639ceb7acac18cf829000ed010c")
time.sleep(1)
driver.maximize_window() # 浏览器全屏显示
print ('浏览器全屏显示 ...')
#输入用户名和密码
driver.find_element_by_id("username").send_keys("89003422")
driver.find_element_by_id("password").send_keys("518.com.12")
time.sleep(10)
#手动输入验证码
#driver.find_element_by_id("verifyCode").send_keys("ABCD")
#点击登录
driver.find_element_by_xpath("//*[@id='loginForm']/div[5]/div/img").click()
time.sleep(8)
#开始执行点击事件
#driver.find_element_by_id("outputButton").click()
print
print ('开始执行任务,执行间隔时间为10分钟 ...')
print
for i in range(1,3):
ISOTIMEFORMAT="%Y-%m-%d %X"
strTime = time.strftime( ISOTIMEFORMAT, time.localtime())
print u"正在执行第 ",i,"次...",strTime
time.sleep(5)
#执行点击事件
driver.find_element_by_id("outputButton").click()
time.sleep(60)
#刷新浏览器
driver.refresh()
time.sleep(535)
print
print u"已执行完第 ",i,u"次,","共延时",i*10,"分"
print
print ('已执行完成...At The End OF,'+strTime)
print
print ('开始执行方法二 ...')
print
def ClickStart():
for i in range(1,60):
print u'正在执行第 ',i,"次 ...",strTime
#刷新浏览器
time.sleep(10)
driver.refresh()
#执行点击事件
#driver.find_element_by_id("outputButton").click()
time.sleep(590)
print
print u"已执行完第 ",i,"次","共延时",i*600/60,"分"
print
ClickStart()
print
print ('开始工作啦...')
#driver.find_element_by_id("inputButton").click()
print
print ('工作已完成...')
3、QQ_Goto.py
#!-*- coding:utf-8 -*-
from pyvirtualdisplay import Display
from selenium import webdriver
import requests
#要签到的QQ群号列表
groupid = [123456789,987654321]
headers = {"Content-Type":"application/x-www-form-urlencoded","Host":"qiandao.qun.qq.com","Origin":"http://qiandao.qun.qq.com","Referer": "http://qiandao.qun.qq.com","User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36"}
#创建一个启动session的请求对象
s = requests.Session()
def login():
try:
#启动一个虚拟桌面
display = Display(visible=0, size=(1100,700))
display.start()
driver = webdriver.Firefox()
driver.set_window_position(20, 40)
driver.set_window_size(1100,700)
#打开QQ登录界面 准备登录
driver.get('http://qzone.qq.com')
driver.switch_to_frame('login_frame')
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear()
#填写QQ帐号
driver.find_element_by_id('u').send_keys('qq号')
driver.find_element_by_id('p').clear()
#填写QQ密码
driver.find_element_by_id('p').send_keys('****zh30.com****')
#模拟点击登录按钮 执行登录 获取cookie
driver.find_element_by_id('login_button').click()
cookies = driver.get_cookies()
#退出浏览器
driver.quit()
display.stop()
#return cookies
except:
pass
cookies = login()
for cookie in cookies:
if cookie['name'] == 'skey':
skey = cookie['value']
s.cookies.set(cookie['name'], cookie['value'])
#计算bkn并存入cookie
e = 5381
for i in range(len(skey)):
e = e + (e<<5)+ord(skey[i])
bkn = str(2147483647 & e)
s.cookies.set("Gtk", bkn)
#签到方法
def sign(groupid):
for gid in groupid:
response = s.post("http://qiandao.qun.qq.com/cgi-bin/sign", data={"gc":gid, "is_sign":0, "bkn":bkn}, headers=headers)
responseJson = response.json()
if responseJson.has_key('em') and responseJson['em'] == 'no login':
break
#开始签到
sign(groupid)