python
打个酱油卖萌♂️
风吹了多少年,对你的思念就奔波了多少年
展开
-
python 连接oracle报错处理方法
1.下载oracle客户端:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html2.解压客户端(我的解压后文件名为instantclient_19_10)3.将该文件夹放入python安装路径中4.将上面的文件路径加入到环境变量path中5.重启pycharm就可正常连接oracle数据库了...原创 2021-04-19 15:54:58 · 470 阅读 · 0 评论 -
linux 常用命令的用法
通过关键字查询文件数据:grep “关键字” 文件路径grep “root” /etc/passwd标出关键字所在的行数和颜色grep -n --color=auto “root” /etc/passwd原创 2021-04-05 17:11:41 · 101 阅读 · 0 评论 -
linux 用yum安装包报错All mirror URLs are not using ftp, http[s] or file.的解决方案
用root用户登录,执行以下命令:sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.confmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupcurl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyu原创 2021-03-30 23:52:21 · 187 阅读 · 0 评论 -
在虚拟机vmware中安装centOS报错:anaconda: Fatal IO error的解决方法
1.创建虚拟机时,选择自定义,点击下一步2.选择Workstation 6.5-7.x,点击下一步创建虚拟机即可解决原创 2021-03-29 09:48:37 · 1000 阅读 · 0 评论 -
python 查看某个对象包含哪些方法和用法
dir(对象名) #可查看该对象包含哪些方法help(对象名.方法名) #查看该方法如何使用原创 2021-03-23 19:20:07 · 1073 阅读 · 0 评论 -
python 冒泡排序算法
def bubble_sort(nums): for i in range(len(nums) - 1): # 这个循环负责设置冒泡排序进行的次数 for j in range(len(nums) - i - 1): # j为列表下标 if nums[j] > nums[j + 1]: nums[j], nums[j + 1] = nums[j + 1], nums[j] return nums print原创 2021-03-21 08:34:59 · 259 阅读 · 0 评论 -
用CMD操作mysql数据的方法
1.打开数据库,用户名为root,密码为123456mysql -uroot -p1234562.创建库,该语句的意思为如果test库不存在则创建,CHARSET utf8 COLLATE utf8_general_ci为不区分大小写插入数据CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;3.直接创建库create database test;4.显示存在的库show databas原创 2021-03-14 17:39:32 · 118 阅读 · 0 评论 -
python 连接mysql数据库以及操作数据库方法
import pymysqlconn = pymysql.connect( #连接数据库 host = "127.0.0.1", port = 3306, user = "root", passwd = "gloryroad", db= "gloryroad", charset = "utf8" )原创 2021-03-14 16:32:47 · 121 阅读 · 0 评论 -
jmeter响应体response乱码的解决方法
第一步:在线程组中添加BanShell PostProcessor第二步:在BanShell PostProcessor中的Script中写入该代码就可以了:prev.setDataEncoding(“utf-8”);原创 2021-03-13 15:47:38 · 160 阅读 · 0 评论 -
将下拉框锁定,以便进行定位
setTimeout(function(){debugger;},5000)原创 2021-02-24 15:27:40 · 624 阅读 · 0 评论 -
python selenium自动化在邮件中写正文的方法
邮件的正文是一个iframe,先切换到这个iframe中,然后直接定位这个iframe中的body元素(’/html/body’),再用下面的方法1或方法2就可以输入内容了方法1:用element.send_keys(‘你好’)直接写入内容即可方法2:用js语句写入内容driver.execute_script("document.getElementsByTagName(‘body’)[0].innerHTML=‘你好;’ ")以上方法都无法操作的时候,可以尝试以下方法:先将焦点放在邮件的主题栏,原创 2021-02-18 21:07:15 · 387 阅读 · 0 评论 -
python selenium自动化读取配置文件的方法
import configparserimport osimport platformif platform.system()=='windows': #判断操作系统是否为windows系统 #__file__获取当前这个文件的文件名 #os.path.abspath(__file__)获取当前文件的绝对路径,路径包含文件名 #os.path.dirname(os.path.abspath(__file__))获取当前文件的绝对路径,不包含文件名 #然后拼接上db.i原创 2021-02-17 23:15:37 · 276 阅读 · 0 评论 -
python selenium浏览器上传文件操作(推荐用方法二)
from selenium import webdriverfrom selenium.common.exceptions import WebDriverExceptionfrom selenium.webdriver.common.keys import Keysimport timeimport unittestimport tracebackimport win32clipboard as wimport win32apiimport win32confrom selenium.w原创 2021-02-17 22:17:26 · 646 阅读 · 1 评论 -
python selenium自动化,Firefox自动下载文件以及浏览器相关配置
from selenium import webdriverfrom selenium.common.exceptions import WebDriverExceptionfrom selenium.webdriver.common.keys import Keysimport time#创建一个存放自定义浏览器配置的对象profile=webdriver.FirefoxProfile()#指定下载路径profile.set_preference('browser.download.di原创 2021-02-17 21:06:30 · 987 阅读 · 0 评论 -
python selenium自动化,用js增加元素的属性、修改元素的属性的值、获取元素的属性的值、删除元素的属性的值
from selenium import webdriverfrom selenium.common.exceptions import WebDriverExceptionfrom selenium.webdriver.common.keys import Keysimport timedef addAttribute(driver,elementObj,attributeName,value): #给元素新增属性,driver浏览器,elementObj元素,attributeName原创 2021-02-17 19:46:01 · 2867 阅读 · 0 评论 -
python selenium自动化杀浏览器进程,杀进程
from selenium import webdriverimport timeimport osdriver = webdriver.Chrome()url = 'https://www.qq.com'driver.get(url)time.sleep(2)# 将浏览器所有进程杀掉,防止浏览器打开过多returnCode=os.system('taskkill /F /iM chrome.exe') returnCode=os.system('taskkill /F /iM ie原创 2021-02-17 18:56:29 · 1002 阅读 · 0 评论 -
python selenium自动化浏览器页面滚动条操作
from selenium import webdriverimport timedriver = webdriver.Chrome()url = 'https://www.qq.com'driver.get(url)time.sleep(2)#操作滚动条从窗口的最上面0滚动到窗口的最下面scrollHeightdriver.execute_script("window.scrollTo(0,document.body.scrollHeight);")#操作滚动条从窗口的最上面0滚动到原创 2021-02-17 17:15:40 · 838 阅读 · 0 评论 -
python selenium自动化js操作浏览器,当普通api无法操作浏览器时,可用该高级api方法
from selenium import webdriverimport timedriver = webdriver.Chrome()url = 'https://www.sogou.com'driver.get(url)time.sleep(2)searchInputBoxJS="document.getElementById('query').value='天天向上'" # js语句定位元素并输入内容,还未操作searchButtonJS="document.getElementB原创 2021-02-17 17:13:48 · 94 阅读 · 0 评论 -
python selenium自动化获取cookie、增加cookie、删除cookie
import unittestfrom selenium import webdriverimport timefrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.common.exceptions import TimeoutException, NoAlertPresentExcep原创 2021-02-17 15:35:41 · 1001 阅读 · 0 评论 -
python selenium自动化实现frame切换,操作alert弹框
frame切换方法1import unittestfrom selenium import webdriverimport timefrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.common.exceptions import TimeoutExceptiondriver =原创 2021-02-17 15:33:16 · 321 阅读 · 0 评论 -
python selenium显示等待的用法
import unittestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC #显示等待包import timedriver=webdriver.Chrome(原创 2021-02-16 23:27:30 · 2198 阅读 · 0 评论 -
python selenium自动化网页切换,浏览器句柄切换
import unittest #系统自带包import timeimport chardetfrom selenium import webdriverclass VisitSogouByChrome(unittest.TestCase): #需要继承unittest.TestCase类 def setUp(self): #test_开头的测试方法执行前先执行的方法,有几个test_开头的方法就执行几次 self.driver=webdriver.Chrome() #打原创 2021-02-15 22:53:32 · 391 阅读 · 1 评论 -
python selenium自动化常用函数、键盘操作、定位元素、网页操作、下拉框、截屏、可拖动元素、鼠标、下拉框、复选框、断言、隐式等待
from selenium import webdriverimport timedriver=webdriver.Chrome() #打开浏览器driver.get('http://www.baidu.com') #访问网页driver.maximize_window() #网页最大化driver.back() #返回driver.forward() #向前driver.refresh() #刷新driver.set_window_position(y=200,x=400) #将浏览器的原创 2021-02-15 22:51:51 · 733 阅读 · 2 评论 -
python selenium自动化,数据驱动+关键字驱动方法
'''以下为测试步骤,文件存放路径为:e:\\step.txtopen_browser||${browser_name}visit||${url}sleep||3assert_word||${assert_word}quit''''''以下为测试数据,文件中必须用双引号,文件存放路径为:e:\\data.txt{"browser_name":"chrome","url":"https://www.baidu.com","assert_word":"百度"}{"browser_name原创 2021-02-15 21:03:18 · 462 阅读 · 1 评论 -
python selenium自动化代码与测试步骤和测试数据分离
'''以下为文件中的测试数据,第一列为函数步骤,第二列为数据,文件存放路径为:e:\\data.txtopen_browser||chromevisit||https://www.baidu.comsleep||3assert_word||百度quit||0'''from selenium import webdriverimport sysimport timedriver='' #类变量、全局变量,存放获取到的浏览器驱动,以便其他函数使用def get_test_step_原创 2021-02-15 19:19:20 · 239 阅读 · 0 评论 -
python推导式列表、eval() 和exec()函数用法、区别
import random[random.choice("abcdefghick") for i in range(8)] #随机从"abcdefghick"字符串中取八个字母,for i in range(8)代表将random.choice("abcdefghick")表达式循环八次原创 2020-11-18 07:22:42 · 100 阅读 · 0 评论 -
python 不同浏览器调用,断言,代码数据分离
'''以下为文件中的测试数据,文件存放路径为:e:\\data.txtie||https://www.baidu.com||百度chrome||https://www.souhu.com||搜狐firefox||https://www.sougou.com||搜狗'''from selenium import webdriverimport sysimport timedriver='' #类变量、全局变量,存放获取到的浏览器驱动,以便其他函数使用def get_test_data原创 2021-02-15 16:15:25 · 197 阅读 · 0 评论 -
python ie、谷歌chrome、火狐firefox浏览器对应版本驱动下载
ie对应版本的驱动下载地址:http://selenium-release.storage.googleapis.com/index.html,查看本机安装的selenium包版本是多少,然后下载对应的ie驱动,将驱动放在python.exe同级目录中,浏览器用ie11chrome对应版本的驱动下载地址:http://chromedriver.storage.googleapis.com/index.html,查看本机的谷歌浏览器版本号,然后下载对应的驱动Firefox对应版本的驱动下载地址:https原创 2021-02-15 14:02:34 · 529 阅读 · 0 评论 -
python xpath元素定位方法
/html/body/div/div[2]/div[5]/div[1]/div/form/span[2]/input #xpath绝对路径//[@id=“su”] #xpath相对路径//[@id=“form”]/span[3]/span[2]/… #定位父元素(上一级元素)//input[@id=“su”] #定位input中id="su"的元素//input[@id=“su” and @type=“submit”] #用两个属性定位元素//[text()=‘平台登录’] #文本定位//[.=原创 2021-02-15 12:16:00 · 1373 阅读 · 2 评论 -
python 操作xml方法,解析xml,创建xml,用列表字典的方式创建xml
解析xml#coding=utf-8from xml.dom.minidom import parseprint('-----------')DOMTree = parse(r'E:\test.xml') #打开xml文件booklist=DOMTree.documentElement #获取根节点print(DOMTree.toxml()) #打印文件内容print(booklist.toxml()) #打印文件内容booklist.hasAttribute("type") #判断boo原创 2021-02-10 23:29:43 · 376 阅读 · 0 评论 -
python协程的用法,手动切换协程,自动切换协程
通过yield生成器来实现协程import timedef consumer(): #函数中如果有yield,那么c=consumer()不会执行该函数,只有执行了c.__next__()才会执行该函数 print('消费者准备吃包子') while True: baozi=yield #yield生成器,用于接收其他函数中send发送的数据,当接收到数据后才会执行下面的代码 print('消费者吃了包子',baozi)def producer():原创 2021-01-31 22:07:09 · 883 阅读 · 0 评论 -
python http的get、post用法,表单提交和非表单提交的区别
import requests#get请求re=requests.get(‘https://www.baidu.com/’) #通过网址请求数据print(re) #返回<Response [200]>print(re.status_code) #单独返回响应码:200print(re.url) #返回请求的网址https://www.baidu.com/print(re.text[:200]) #返回请求内容前200字符,该内容已解码print(re.encoding) #获取编原创 2021-01-30 10:41:49 · 675 阅读 · 1 评论 -
python 多线程的运用,一个线程调用另一个线程,守护线程,线程池的用法、多线程锁的运用
java适合多线程编程,python适合多进程编程。因为python的多线程底层逻辑有同步锁,造成并发效果不佳。python的多进程可以利用多核CPU的计算优势进行并发,所以任务侧重CPU的计算就用多进程,任务侧重大量io的读取和写入就用多线程from threading import Threadimport timedef work(a,b): #多线程需要执行的任务 print(a,b) time.sleep(3)threads=[] #存储多线程的列表for i in原创 2021-01-28 22:24:56 · 3228 阅读 · 0 评论 -
python socket编程TCP和UDP
服务器端的socket(TCP)import sysimport socketip_port=('127.0.0.1',9999) #获取IP和端口sk=socket.socket() #创建一个服务器端的socket对象sk.bind(ip_port) #socket与IP端口绑定sk.listen(5) #设定socket为监听状态print('服务器端的socket进入监听状态...')conn,addr=sk.accept() #等待客户端连接,conn为连接后的对象,addr为客原创 2021-01-26 23:25:02 · 141 阅读 · 0 评论 -
python 创建excel,操作excel,保存excel,修改excel,删除sheet页
from openpyxl import Workbook #该包可进行excel相关的操作import timeimport datetimeimport locale #支持中文日期locale.setlocale(locale.LC_ALL,'en')locale.setlocale(locale.LC_CTYPE,'chinese') #设定支持中文日期wb=Workbook() #在创建一个excel文件ws=wb.active #打开默认sheet页ws1=wb.create原创 2021-01-24 23:35:37 · 803 阅读 · 0 评论 -
python 多进程运用,运用进程池,多进程加锁
import os,timefrom multiprocessing import Process #多进程包import requests #获取网页源码包import random #随机数def download(): urls=["http://www.baidu.com","http://www.qq.com","http://sohu.com"] i=random.randint(0,2) response=requests.get(urls[i]) #随机获取原创 2021-01-23 21:52:56 · 276 阅读 · 0 评论 -
python json和xml的用法,json与字典互转,操作json和xml格式文件
import jsona={“x”:10} #字典b=json.dumps(a) #字典转json,b的值为’{“x”: 10}’。当字段为{“y”:None},转为json时为’{“y”: null}’c=(1,2,3,4)json.dumps© #元组转换为json的值为’[1, 2, 3, 4]’,元组会被转换为列表,None会被转换为null,其他的转化不会变d={“c”:3,“b”:2,“a”:1}e=json.dumps(d,sort_keys=True,indent=4,separ原创 2021-01-10 20:06:04 · 222 阅读 · 0 评论 -
python 类方法、静态方法、实例方法的区别,类变量、实例变量、实例私有变量、定义属性、内置属性、私有方法、继承、闭包、方法重写
class A(): def a(self): #实例方法,参数中必须含self,只能被实例调用;调用该方法时,系统会自动将实例的地址传入self return 10 @classmethod def b(cls): #该方法上方加了@classmethod装饰器的,叫类方法;可以A.b()调用,也可以用实例调用;调用该方法时,系统会自动将本类的地址传入cls print(cls.__name__) #该方法一般用于获取类本身的一些属性,该处打印的值为A return 20 #该方法至少原创 2020-12-30 21:05:26 · 118 阅读 · 0 评论 -
python 与时间处理相关的函数,处理时间的方法time、datetime、calendar,获取当前系统日期时间,时间戳与时间元组转换
import timetime.localtime() #以元组的形式获取当前系统的日期和时间time.struct_time(tm_year=2020, tm_mon=12, tm_mday=27, tm_hour=20, tm_min=9, tm_sec=4, tm_wday=6, tm_yday=362, tm_isdst=0)#tm_wday=6代表周日,0代表星期一#tm_yday=362代表今年的第362天#tm_isdst=0 #代表是否为夏令时,1表示当前为夏令时,0表示非夏令时,原创 2020-12-27 20:41:33 · 278 阅读 · 1 评论 -
python 集合的含义及用法set(),集合的交集、并集、差集
#集合存储数据时自动去重,没有顺序,可进行并集、交集、差集的运算a=set() #创建空集合a=set([‘abc’,‘efg’,‘abc’]) #a的值为{‘efg’, ‘abc’},自动去重a=set({1:2,3:4,5:6}) #a的值为{1,3,5},只取字典的KEYa=set(‘abcda’) #a的值为{‘d’, ‘c’, ‘a’, ‘b’},自动拆分字符串并去重a=set()a.add(‘abc’) #a的值为{‘abc’},将添加的字符串整体存入集合中a.update(‘ef原创 2020-12-27 20:03:48 · 1043 阅读 · 0 评论