06 2018 档案

摘要:此弹窗是浏览器自带的弹窗,不是html中的元素 from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsimport timefrom selenium.webdriv 阅读全文
posted @ 2018-06-12 19:11 向前走。 编辑
摘要:# from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsimport timedriver = webdriver.Firefox()url = "https:// 阅读全文
posted @ 2018-06-12 19:07 向前走。 编辑
摘要:显式等待(sleep): 固定的等待(死等),不管页面有没有加载完,都等设置的时间过了再做下一步操作 隐式等待 全局生效,只写一次即可(仅当前页面),缺点:如果页面一直转圈,如:js出错将等待到所设置的时间完成若有页面切换,需sleep等待新页面出现后,再使用此方法 如:在35秒内,等待操作完成,完 阅读全文
posted @ 2018-06-12 19:02 向前走。 编辑
摘要:from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time driver = webdriver.Firefox()driver.get("http://bj.ganji.com/")tim 阅读全文
posted @ 2018-06-12 19:00 向前走。 编辑
摘要:iframe是HTML里面嵌套HTML的一种框架 1.查看iframe 1.Top Window:可直接定位 2.iframe#i:说明此元素在iframe上 3.iframe显示为空:(id或name为空) 4.右边这个看到是空的(2层iframe) 以126邮箱为例 from selenium 阅读全文
posted @ 2018-06-11 22:38 向前走。 编辑
摘要:1、鼠标事件:# 每个模拟事件后需加.perform() 才会执行# context_click() 右击# double_click() 双击# drag_and_drop(source, target) 拖动# move_to_element() 鼠标悬停# move_to 移动 from se 阅读全文
posted @ 2018-06-10 17:20 向前走。 编辑
摘要:# 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2) # 等待2秒driver.get('https://www.baidu.com') 1、id定位 阅读全文
posted @ 2018-06-10 17:01 向前走。 编辑
摘要:# 1.打开Firefox浏览器from selenium import webdriverdriver = webdriver.Firefox()driver.get("https://www.baidu.com") # 2.打开Ie或Chrome浏览器-->先将驱动文件放到python根目录 f 阅读全文
posted @ 2018-06-10 16:39 向前走。 编辑
摘要:# MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl = hashlib.md5() hl.update(str.encode(encoding='ut 阅读全文
posted @ 2018-06-09 17:25 向前走。 编辑
摘要:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/5/28 18:51# @Author : StalloneYang# @File : mysql_test.py# @desc:# 连接数据库import pymysql.curs 阅读全文
posted @ 2018-06-09 17:20 向前走。 编辑
摘要:import requestsimport unittestclass TestQQ(unittest.TestCase): '''测试QQ号接口''' # 此注释将展示到测试报告的测试组类 def test_qq(self): '''测试QQ号码,正确的appkey''' # 此注释将展示到测试报 阅读全文
posted @ 2018-06-09 17:14 向前走。 编辑
摘要:# 添加多个附件参数化files = [("1.png", "1.png") ("2.png", "2.png") ]def addFiles(files, n=1): file = [] for i in list(range(n)): a =("files[]", (files[i][1], open(files[i][2], "rb")... 阅读全文
posted @ 2018-06-09 17:08 向前走。 编辑
摘要:# 以禅道为例: 一、创建一个类,类里面写一个登录方法: 二、上传图片接口: 三、编写、执行测试用例: 阅读全文
posted @ 2018-06-09 17:07 向前走。 编辑
摘要:文件下载类型: Content-Type: octets/stream 一般为文件类型: 阅读全文
posted @ 2018-06-09 16:56 向前走。 编辑
摘要:# 类和方法class Count(): def __init__(self, aaa, bbb): # 初始化 # 可以放公共的参数 print('实例化的时候,会执行init的内容') self.a = aaa self.b = bbb # 加了self是全局变量,没加self是局部变量 def abb(self... 阅读全文
posted @ 2018-06-09 16:53 向前走。 编辑
摘要:# coding:utf-8import requestsimport refrom bs4 import BeautifulSoup# s = requests.session() # 全局的sdef get_token(s): ''' fuction: 获取token args: s 参数 -》s = requests.session() :return anti_... 阅读全文
posted @ 2018-06-09 16:51 向前走。 编辑
摘要:# 函数a = [1, 3, 6, 4, 85, 32, 46]print(sum(a)) # sum,求和函数def add(): a = 1, b = 2, return a + bprint(add())def add(a, b): # 都必填 return a + bprint(add())def add(a=0, b=0): # 都非必填 retu... 阅读全文
posted @ 2018-06-09 16:49 向前走。 编辑
摘要:# 爬图片# 目标网站:http://699pic.com/sousuo-218808-13-1.htmlimport requestsfrom bs4 import BeautifulSoupimport osr = requests.get('http://699pic.com/sousuo-218808-13-1.html')# r.content # 返回的是字节流soup = Bea... 阅读全文
posted @ 2018-06-09 16:44 向前走。 编辑
摘要:安装:beautifulsoup4 from bs4 import BeautifulSoup yoyo = open('yoyo.html', 'r') # 以读的方式打开“yoyo.html”文件 # print(yoyo.read()) # 此方法打开的是一个字符串,内容没有层级结构 # yo 阅读全文
posted @ 2018-06-09 16:40 向前走。 编辑
摘要:import unittestimport requestsdef add(a, b): print('前置条件!!!!!:如登录') return a + bclass TestAAA(unittest.TestCase):# 一次性的前置条件, 运行优先级:1 @classmethod # 调用setUpClass方... 阅读全文
posted @ 2018-06-09 16:32 向前走。 编辑
摘要:解决问题:每次密码都是变化的,无法通过账号密码登录 (总不能每次去fiddler复制吧????) 解决思路: 1.先用selenium调用浏览器(不会selenium的自己想办法了), 2.登录后从浏览器里面抓取cookies 3.把cookies传给s 4.这样就成功成功了 如果登录有验证码怎么办 阅读全文
posted @ 2018-06-09 16:16 向前走。 编辑
摘要:导入re模块 import re # 正则提取前部的值,"^(.+?)后",^表示从头开始匹配,返回列表 result = re.findall("^(.+?)345", '123wersdfsd345')print(result)print(result[0]) # 正则提取中间的值,"前(.+? 阅读全文
posted @ 2018-06-09 16:12 向前走。 编辑
摘要:# url编码与解码 from urllib import parse url = 'http://zzk.cnblogs.com/s/blogpost?Keywords=中文' a = '中文' b = parse.quote(a) # 转urlencode编码 print(b) print(parse.quote(b)) # 转第二次(若有需求) # 解码 c = '%E4%B... 阅读全文
posted @ 2018-06-09 16:02 向前走。 编辑
摘要:# 1、requests里面自带解析器转字典 print(r.json()) print(type(r.json())) # 取出json中的'result_sk_temp'字段 # {"resultcode":"200","reason":"查询成功","result":{"sk":{"temp":"28","wind_direction":"东南风","wind_st 阅读全文
posted @ 2018-06-09 15:58 向前走。 编辑
摘要:# 第二种方法 import jsonr = requests.post(url, data=json.dumps(body))print(r.text) 以下是传参的时候,body参数里面有多层字典嵌套的处理 直接传参是解析不出来的 导入json模块,用json.dumps()把第二层字典转换成j 阅读全文
posted @ 2018-06-09 15:50 向前走。 编辑
摘要:# 字典 t = { # 键:值 '': '', '': '' } # 字典 # dict key: value key是唯一的,无序的 h = { 's': 12, 'f': False, 2: 'd', 'r': 't', 'sd': ['gf', 'rt', ' ew 阅读全文
posted @ 2018-06-09 15:42 向前走。 编辑
摘要:allow_redirects=False 不重定向 # 获取重定向后的地址 loc = r.headers # 相对地址 host = 'https://i.cnblogs.com/' url = host+'EditPosts.aspx?opt=1' loc = r.headers['Locat 阅读全文
posted @ 2018-06-09 15:31 向前走。 编辑
摘要:s = requests.session() # 此方法只适用于网站是cookies这种,网站是token的没用 # 这样做的好处就是可以保存cookies并保持会话,不用每次都去获取、传参 Token请求: Cookies请求: 有保持登录的cookies: 一:加入指定的cookie 把s所带的 阅读全文
posted @ 2018-06-09 15:25 向前走。 编辑
摘要:获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cookies=loginCookies 此方法需每一次都调用登录方法,并且每一次发送请求都需要传Cookies,不建议使用 阅读全文
posted @ 2018-06-09 15:14 向前走。 编辑
摘要:对于不可重复参数,可以用时间戳,防重复 import time title = '这是我的标题:%s'%str(int(time.time())) print(title) 转化成时间格式 t = time.strftime('%Y_%m_%d_%H_%M_%S') print(t) datetim 阅读全文
posted @ 2018-06-09 15:10 向前走。 编辑
摘要:乱码: 以content字节流输出,解码成utf-8: print(r.encoding) # 查看返回的编码格式: 去掉Warning警告: import urllib3 urllib3.disable_warnings() 错误处理: 403:拒绝或者禁止访问:须伪装头部(头部详情根据接口文档) 阅读全文
posted @ 2018-06-09 15:04 向前走。 编辑
摘要:HTTPS: get: url = 'https://www.juhe.cn/docs/api/id/39' r = requests.get(url) #发送get请求 print(r.status_code) #打印状态码 print(r.headers) #打印返回的报头(头部) print( 阅读全文
posted @ 2018-06-09 14:57 向前走。 编辑
摘要:get请求: 1、get请求(无参数): 2、get请求(带参数): 接口地址:http://japi.juhe.cn/qqevaluate/qq 返回格式:json 请求方式:get post 请求示例:http://japi.juhe.cn/qqevaluate/qq?key=您申请的appKe 阅读全文
posted @ 2018-06-09 14:56 向前走。 编辑
摘要:requests官方文档:https://requests.readthedocs.io/zh_CN/latest/ requests发送请求的方式和支持的请求: 一、发送请求 1:简单示例 发送一个get请求(post、put···其他方法发送方式一样),返回response对象 由源码可看出,查 阅读全文
posted @ 2018-06-09 13:56 向前走。 编辑
摘要:1、 http简介:http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议 2、 url详解:百度搜索的一个url地址:https://www.baidu.com/s?wd=%E4%B8%8A%E6%B5%B7%E6%82%A0%E6%82%A0%E5%8D%9A%E5%AE% 阅读全文
posted @ 2018-06-09 13:42 向前走。 编辑

点击右上角即可分享
微信分享提示