Python+Selenium 简单的实例

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)




                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值