python脚本 订单号匹配标位,测试是否打标成功

一、提前说明:

(一)环境为python2.7(3.7会报not str错误):
(二)testurl.txt一开始写需要判断的网址:在这里插入图片描述
(四)dabiao.txt本身是空的,是打完断点输出sendpay之后替换后边的值:
(因为该地址是前边地址的下一步操作哈哈,如果可以直接写代码替换其实很方便,但我暂时还没有时间写,哈哈哈哈):

(五)执行步骤
1、在打断点执行完,输出sendPay后,
2、把该订单的sendPay值替换到dabiao.txt后边,
3、然后继续执行即可判断第几位打标成功,第几位打标失败。
4、(这样就是该订单号的该sendPay值的打标位数了。)

二、完整代码

#!/usr/bin/order
# -*- coding: UTF-8 -*-
from requests import packages
from lxml import etree
import requests
import xlwt

packages.urllib3.disable_warnings()


def getOrderDetail():
    f = open("D:\\PycharmProjects\\OmTestDemo\\src\\main\\data\\testurl.txt", "r")
    urlList = f.readlines()

    # for url in urlList:
    for index in range(len(urlList)):
        url = urlList[index]
        url = url.strip('\n')
        headers = {
            "Cookie":
                "此处替换Cookie"
        }
        r = requests.get(url=url, headers=headers)
        # r.encoding = r.apparent_encoding
        rStr = r.content
        # print rStr
        
		#sendPay=后边有500为数值
        rStr1 = rStr.find("sendPay=(查找元素)")
        #+8是因为想取 sendPay= 的后边的位置
        Len = rStr1 + 8
        # print "sendPay位置:" + str(Len)

        # 根据index取sendPay
        sendPay = rStr[Len:Len + 500]
		
#此处打断点;然后把输出的sendPay放到dabiao.txt文件中!!!再接下去执行
        print sendPay

        str148_149 = rStr[Len + 148:Len + 149]
        print "第148-149位:" + str148_149

        str60_62 = rStr[Len + 59:Len + 62]
        print "第60-62位:" + str60_62

        str162 = rStr[Len + 161:Len + 162]
        print "第162位:" + str162

        # -------------------------
        f1 = open("D:\\PycharmProjects\\OmTestDemo\\src\\main\\data\\dabiao.txt", "r")
        urlList1 = f1.readlines()
        url1 = urlList1[index]
        # for url1 in urlList1:
        r = requests.get(url=url1, headers=headers)
        # r.encoding = r.apparent_encoding
        rStr222 = r.content
        # print "全部标记:" + rStr

        if "01" in str148_149 and "X1订单" in rStr222:
            print "匹配成功"
        else:
            print "X1订匹配失败"

        if ("1" in str162 or "023" in str60_62) and "X2订单" in rStr222:
            print "匹配成功"
        else:
            print "X2订匹配失败"

        if "052" in str60_62 and "X3订单" in rStr222:
            print "匹配成功"
        else:
            print "X3订匹配失败"

        print "\n"


if __name__ == '__main__':
    getOrderDetail()

执行结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200409122651737.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzY1NDgy,size_16,color_FFFFFF,t_7

三、注意点

(一)python3.7执行不了是因为==:参考博文地址
Python3和Python2的字符串兼容问题,因为数据文件是在Python2下序列化的,所以使用Python3读取时,需要将‘str’转化为’bytes’

————》所以我换了版本成2.7可以成功执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值