Python+Selenium 简单的实例

来源:互联网 发布:网络文员兼职 编辑:程序博客网 时间:2024/06/05 08:47

1、Baidu_Serch.py

#coding=utf-8from selenium import webdriverfrom 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 Keysfrom time import sleepimport os,timedriver = 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 boxelem.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-8from selenium import webdriver#from selenium.webdriver.support.ui import WebDriverWait#from selenium.webdriver.support.wait import WebDriverWait#WebDriverWait 导入from selenium.webdriver.common.keys import Keysimport os,timedriver = 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()printprint ('开始执行任务,执行间隔时间为10分钟 ...')printfor 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,"分"    printprint ('已执行完成...At The End OF,'+strTime)printprint ('开始执行方法二 ...')printdef 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()printprint ('开始工作啦...')#driver.find_element_by_id("inputButton").click()printprint ('工作已完成...')

3、QQ_Goto.py

#!-*- coding:utf-8 -*-from pyvirtualdisplay import Displayfrom selenium import webdriverimport 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:                passcookies = login()for cookie in cookies:        if cookie['name'] == 'skey':                skey = cookie['value']        s.cookies.set(cookie['name'], cookie['value'])#计算bkn并存入cookiee = 5381for 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)



                                             
0 0
原创粉丝点击