zoukankan      html  css  js  c++  java
  • 转:脱机环境下window 使用pycharm 连接cx_oracle 连接数据库

    #sample 1 Python 2,7 已经安装,可以正常跑,但是cx_oracle windows 版本下载下来,无法安装

    https://pypi.org/project/cx-Oracle/5.3/#files

    1.现在现在版本 cx_Oracle-5.3-11g.win-amd64-py2.7 (321.4 kB) 是5.3 版本,配套oracle 11g client ,配置windos 64 位的

    2,安装报错如下:

    Python version 2.7 required, which was not found in the registry

    使用这个方法可以 手工注册 注册表,正常执行安装

    https://www.cnblogs.com/min0208/archive/2012/05/24/2515584.html

    #sample2 pycharm   创建一个Project 的虚拟环境时候hang 住3分钟,

    因为是脱机环境,可能不能同步数据,可以考虑中断。

    然后打开现有的目录,即可

    #sample3 pycharm   需要手工配置解释器

    Pycharm配置(1)——解释器(interpreter)

    参考文档

    https://blog.csdn.net/yuangan1529/article/details/80800411

    今天导入模块,发现出了很多错,要升级pip,但是我发现在新建的工程项目(PycharmIDE)中有pip,而我安装的Python3中,也有pip ,那我升级哪一个呢?

    1、首先,遇到的问题是:已经安装python,dos窗口却提示“python不是内部命令或外部命令,也不是可运行的程序”

    解决方案:点击打开链接

    2、发现两者都是一样的,都是解释器(Project Interpreter)的问题

    (1)什么是解释器

    先说一下,什么是解释器,Python的解释器就是Python.exe,是用来解释运行你编写的Python代码的,我们下载的Python(无论是2版本,还是3版本)其实自带解释器和编译器,可以直接在命令行敲入代码,或者写一个文本,然后调用Python的解释器来执行也可以,而Pycharm则是一个IDE(主要是让我们编写程序更加方便,或者说看起来更加简单,不需要用文本或在dos窗口编写代码),但是Pycharm是不带Python解释器的,所以你要在安装Pycharm之前,安装好Python。

    上图是我的pycharm运行所需要的外部库:所在位置是一个项目文件中(注意:我的Python3安装位置是D:\Python),然后我检查了一下Pycharm的运行环境:File——>Setting

    上面列出的这个图,其实找的是我的项目文件Python编程所需要的项目解释器(Project Interpreter)在哪里,其配置是什么,可以看出,它的解释器就在项目文件下,而不是我安装的D盘中的Python3,那么我就要问了,既然创建项目的时候就有,我还安装Python3干什么?

    原来这个问题,我之前遇到了(大约刚安装好Pycharm的时候吧),当时是这个问题:

    一开始创建项目的时候,运行第一行代码,貌似是没有配置解释器的,那我当时是怎么配置呢?

    还是上面的File——>Setting——>show all(在project Interpreter选项里面),点开以后得到:

    点击加号,进行添加(我们看看这个配置的解释器和D盘里面的Python3有什么关系):点击加号以后,会有两个选项,一个是add Local Python Interpreter(这个其实就是你D盘里面的Python3,也就是本地的解释器),第二个是add remote Python interpreter,也就是远程的解释器(不在你的本地机器上,但是你可以远程访问它)

    看到这个选项没有,这里说是虚拟环境,也就是说这是一个虚拟解释器,它是建立在D盘里面的Python解释器(第二个圆圈)基础之上的,这里的虚拟解释器在我理解来看,其实和缓存差不多,将要用到的东西放到项目文件夹中,用到的时候,直接调用邻近的,这样速度快,如果没有了,再去原解释器(D盘中),寻找需要的东西。

    在网上找了一下关于解释器配置的几种不同说明,可以参考一下:pycharm下基于Virtualenvwrapper和anaconda的Python虚拟环境配置应用

    上面提到这种虚拟环境,其实是起到隔离不同版本的Python的效果,virtualenv和conda是两种不同的虚拟隔离环境,当然这些我暂时还没有用到,就先不介绍了,conda用到的是Anaconda

    (2)虚拟与基本解释器是否同步?

    所以说一切的基础还是在D盘中的Python中,但是两者是同步的吗?

    答案是不同步的,我在D盘的Python中安装了numpy模块,但是用虚拟解释器依然报错,只有在虚拟解释器(也就是你解释器的环境下,执行pip install才可以),再次更新一下,两者虽然是不同步的,但是更新下载的时候,只要D盘根解释器已经下载过了,那么虚拟环境中,就不需要联网下载了,可以直接复制D盘的模块,如下图:

    上图,是我在D盘Python中下载numpy是,要联网下载关于numpy模块的包,但是我的虚拟解释器那边没有进行更新,但是我在虚拟解释器中下载安装numpy的时候,却非常简单:

    如上图所示,没有下载文件,我猜测是直接复制粘贴的D盘中的内容

    建议以后先在D盘的Python(我的base interpreter所在位置)安装模块,然后再在虚拟环境中安装,这样以后虚拟环境发生了改变,也可以快速再次安装


    ————————————————
    版权声明:本文为CSDN博主「蓝亚之舟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yuangan1529/article/details/80800411

    ####sample 4;

    cx_Oracle 连接测试,参考文档

     https://cloud.tencent.com/developer/article/1661831

    # -*- coding:utf-8 -*-
    import cx_Oracle
    db = cx_Oracle.connect('dbmgr', 'dbmgr', '10.241.131.126:1521/pcrs')
    # db = cx_Oracle.connect('C##oracle', 'oracle', '192.168.106.100:1521/orcl')
    cursor=db.cursor()
    # sql="SELECT COLUMN1, COLUMN2 FROM C##ORACLE.NEWTABLE"
    sql="select du.username,su.password,du.profile,du.account_status
    from dba_users du,sys.user$ su
    where du.username in (select username from sys.t_user_cfg)
    and du.username = su.name"
    cursor.execute(sql)
    result = cursor.fetchall()
    for i in result:
    print(i)
    cursor.close();
    db.close();

    ###

    ##sample 1:cx-oracle-lob 读取,for x 后面加入,
    https://stackoverflow.com/questions/8646968/how-do-i-read-cx-oracle-lob-data-in-python

    cx-oracle-lob 读取,for x 后面加入,

    There should be an extra comma in the for loop, see in below code, i have supplied an extra comma after x in for loop.

    dsn = cx_Oracle.makedsn(hostname, port, sid)
    orcl = cx_Oracle.connect(username + '/' + password + '@' + dsn)
    curs = orcl.cursor()
    sql = "select TEMPLATE from my_table where id ='6'"
    curs.execute(sql)
    rows = curs.fetchall()
    for x, in rows:
    print(x)

    Share
    Edit
    Follow
    Flag


    ##sample 2:cx_Oracle模块学习之绑定变量

    https://www.cnblogs.com/riskyer/p/3310676.html

    cur.execute('''select * from departments
    where department_id=:id and
    department_name=:name
    ''',id=dept_id,name=dept_name
    )

    cursor.execute('''SELECT DBMS_METADATA.GET_DDL('TABLESPACE',:tname) FROM DUAL''', tname=t_name)


    cur.execute('''insert into departments (department_id,department_name,manager_id,location_id)
    values(:ID,:NAME,:MGR_ID,:LOC_ID)
    ''', {'ID':555,'NAME':'WaterBin','MGR_ID':110,'LOC_ID':7788}
    )


    #######sample 3 How to change values in a tuple?
    https://stackoverflow.com/questions/11458239/how-to-change-values-in-a-tuple

    t = ('275', '54000', '0.0', '5000.0', '0.0')
    lst = list(t)
    lst[0] = '300'
    t = tuple(lst)

    ###sample 4  

    深入理解Python变量与赋值

    https://blog.csdn.net/i6223671/article/details/100068214

    ##########sample 1

    ##sample python 替换文件内容
    ##参考https://www.cnblogs.com/milian0711/p/7132377.html python 2.7版本解决TypeError: 'encoding' is an invalid keyword argument for this function
    ###https://www.cnblogs.com/yujihaia/p/7468235.html python 文件内容修改替换操作
    # -*- coding:utf-8 -*-
    import os
    import io
    # 打开旧文件
    f = io.open('file_text.txt','r',encoding='utf-8')

    # 打开新文件
    f_new = io.open('file_text_bak.txt','w',encoding='utf-8')


    # 循环读取旧文件
    for line in f:
    # 进行判断
    if "Good day is good day" in line:
    line = line.replace('Good day is good day','hello,yanyan')
    # 如果不符合就正常的将文件中的内容读取并且输出到新文件中
    f_new.write(line)

    f.close()
    f_new.close()

    #######

    ###sample 1 from doc https://www.it610.com/article/1293833117810892800.htm

    cd e:\test_pymagic_boxvenvScripts>
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0-py2.py3-none-any.whl

    or


    python E:\test_pymagic_boxpackagePyMySQL-0.9.0PyMySQL-0.9.0setup.py install
    cd E:\test_pymagic_boxpackagePyMySQL-0.9.0PyMySQL-0.9.0

    step step
    from doc https://www.it610.com/article/1293833117810892800.htm

    根据输出日志,安装顺序如下,依次安装每个补丁:
    Installing collected packages: enum34, asn1crypto, pycparser, cffi, idna, ipaddress, cryptography, pymysql

    实际安装步骤如下:
    (切换到 pip 路径,执行按安装)
    cd e:\test_pymagic_boxvenvScripts>
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0asn1crypto-1.4.0-py2.py3-none-any.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0six-1.16.0-py2.py3-none-any.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0enum34-1.1.10-py2-none-any.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0pycparser-2.20-py2.py3-none-any.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0cffi-1.14.5-cp27-cp27m-win_amd64.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0idna-2.10-py2.py3-none-any.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0ipaddress-1.0.23-py2.py3-none-any.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0cryptography-2.6-cp27-cp27m-win_amd64.whl
    pip install E:\test_pymagic_boxpackagePyMySQL-0.9.0-py2.py3-none-any.whl

    #

    #######sample 2  https://www.cnblogs.com/walk1314/p/7251126.html
    python2(中文编码问题):UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1
      python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。
      查询系统默认编码可以在解释器中输入以下命令:
    python代码
      >>>sys.getdefaultencoding()
      设置默认编码时使用:
    python代码
      >>>sys.setdefaultencoding('utf8')
      可能会报AttributeError: 'module' object has no attribute 'setdefaultencoding'的错误。执行reload(sys),再执行以上命令就可以顺利通过。
    此时再执行sys.getdefaultencoding()就会发现编码已经被设置为utf8的了,但是在解释器里修改的编码只能保证当次有效,在重启解释器后,会发现,编码又被重置为默认的ascii了。
      有2种方法设置python的默认编码:
      一个解决的方案在程序中加入以下代码:
      Python代码
      # encoding=utf8
      import sys
      reload(sys)
      sys.setdefaultencoding('utf8')
      另一个方案是在python的Libsite-packages文件夹下新建一个sitecustomize.py,内容为:
      Python代码
      # encoding=utf8
      import sys
      reload(sys)
      sys.setdefaultencoding('utf8')
      此时重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。

    ###sample 1  python print 中文

    解决pycharm中中文列表输出'xe5xa4xa7xe8x92x9c'之类的字符串

    wqy94103 2017-08-09 20:42:29 19850 收藏 7
    分类专栏: python 文章标签: python
    版权
    #coding=utf-8
    member=["贝贝","晶晶","欢欢"]
    print(member)
    print("北京欢迎您!")
    1
    2
    3
    4
    如上代码块,结果输出为:
    [‘xe8xb4x9dxe8xb4x9d’, ‘xe6x99xb6xe6x99xb6’, ‘xe6xacxa2xe6xacxa2’]
    北京欢迎您!

    该怎么解决以上pycharm中的中文列表输出的编码问题呢?

    其实,只需将代码中的‘print(member)’改为’print str(member).decode(‘string-escape’)‘即可
    ————————————————
    版权声明:本文为CSDN博主「wqy94103」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wqy94103/article/details/77016578

    ##sample  2 python 变量 %c %s 的区别

    https://zhidao.baidu.com/question/2017135013606924908.html

        符   号

       

    描述

       

    %c

       

     格式化字符及其ASCII码

       

    %s

       

     格式化字符串

       

    %d

       

     格式化整数

       

    %u

       

     格式化无符号整型

       

    %o

       

     格式化无符号八进制数

       

    %x

       

     格式化无符号十六进制数

       

    %X

       

     格式化无符号十六进制数(大写)

       

    %f

       

     格式化浮点数字,可指定小数点后的精度   如:%.2f

       

     %e

       

    用科学计数法格式化浮点数

       

    %E

       

    作用同%e,用科学计数法格式化浮点数

       

    %g

       

     %f和%e的简写

       

    %G

       

    %f 和 %E 的简写

       

    %p

       

     用十六进制数格式化变量的地址

       

    '%c'%65:输出ASII码65对应的字符,对应的是'A'

    “%c”是占位符的一种,还有%s %d 等等
    %c指的是 字符及其ASCII码
    65的ASCII码就是A

    #####

    ##sample for python2

    参考https://www.cnblogs.com/ming5218/p/7965973.html
    https://blog.csdn.net/jihu0412/article/details/81030308

    ##for python3
    原因:
    在 Python 3.x 版本后,ConfigParser.py 已经更名为 configparser.py 所以出错!
    解决办法:

    cp /usr/local/python3/lib/python3.6/configparser.py /usr/local/python3/lib/python3.6/ConfigParse

    ##for python2
    import ConfigParser
    config = ConfigParser.ConfigParser()
    config.read('C:\tt\tt\test_py\magic_box\config\config.ini')
    ['C:\tt\tt\test_py\magic_box\config\config.ini']
    ##section 部分
    print(config.sections())
    ['test', 'oracle', 'mysql']

    ##option 部分
    r = config.options("mysql")
    print(r)

    config.get("mysql", "my_pass")

    ########### sample 

    https://www.cnblogs.com/kakaln/p/8192957.html#:~:text=%E5%9C%A8%E4%BD%BF%E7%94%A8pycharm%E6%97%B6%EF%BC%8C%E7%BB%8F%E5%B8%B8%E4%BC%9A%E9%9C%80%E8%A6%81%E5%A4%9A%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%90%8C%E6%97%B6%E7%BC%A9%E8%BF%9B%E3%80%81%E5%B7%A6%E7%A7%BB%EF%BC%8Cpycharm%E6%8F%90%E4%BE%9B%E4%BA%86%E5%BF%AB%E6%8D%B7%E6%96%B9%E5%BC%8F%201%E3%80%81pycharm%E4%BD%BF%E5%A4%9A%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%90%8C%E6%97%B6%E7%BC%A9%E8%BF%9B,%E9%BC%A0%E6%A0%87%E9%80%89%E4%B8%AD%E5%A4%9A%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%90%8E%EF%BC%8C%E6%8C%89%E4%B8%8BTab%E9%94%AE%EF%BC%8C%E4%B8%80%E6%AC%A1%E7%BC%A9%E8%BF%9B%E5%9B%9B%E4%B8%AA%E5%AD%97%E7%AC%A6%202%E3%80%81pycharm%E4%BD%BF%E5%A4%9A%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%90%8C%E6%97%B6%E5%B7%A6%E7%A7%BB%20%E9%BC%A0%E6%A0%87%E9%80%89%E4%B8%AD%E5%A4%9A%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%90%8E%EF%BC%8C%E5%90%8C%E6%97%B6%E6%8C%89%E4%BD%8Fshift%2BTab%E9%94%AE%EF%BC%8C%E4%B8%80%E6%AC%A1%E5%B7%A6%E7%A7%BB

    pycharm多行代码缩进、左移

     

    在使用pycharm时,经常会需要多行代码同时缩进、左移,pycharm提供了快捷方式

    1、pycharm使多行代码同时缩进

       鼠标选中多行代码后,按下Tab键,一次缩进四个字符

    2、pycharm使多行代码同时左移

      鼠标选中多行代码后,同时按住shift+Tab键,一次左移四个字符

    ########sample  1

    ##根据下载的顺序,倒叙安装

    C:Python27Scripts>pip download faker
    Collecting faker
    Downloading https://files.pythonhosted.org/packages/35/28/0fbb15ffe79f1068211f6219b88dc817e5f6b455e23806e3d3a4699fd454/Faker-3.0.1-py2.py3-none-any.whl (977kB)
    100% |████████████████████████████████| 983kB 181kB/s
    Saved c:python27scriptsfaker-3.0.1-py2.py3-none-any.whl
    Collecting text-unidecode==1.3 (from faker)
    Downloading https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl (78kB)
    100% |████████████████████████████████| 81kB 217kB/s
    Saved c:python27scripts ext_unidecode-1.3-py2.py3-none-any.whl
    Collecting ipaddress; python_version < "3.3" (from faker)
    File was already downloaded c:python27scriptsipaddress-1.0.23-py2.py3-none-any.whl
    Collecting python-dateutil>=2.4 (from faker)
    Downloading https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl (227kB)
    100% |████████████████████████████████| 235kB 252kB/s
    Saved c:python27scriptspython_dateutil-2.8.1-py2.py3-none-any.whl
    Collecting six>=1.10 (from faker)
    File was already downloaded c:python27scriptssix-1.16.0-py2.py3-none-any.whl

    ##for faker
    cd e:\test_pymagic_boxvenvScripts
    pip install E:\test_pymagic_boxpackagefakerpython_dateutil-2.8.1-py2.py3-none-any.whl
    pip install E:\test_pymagic_boxpackagefaker ext_unidecode-1.3-py2.py3-none-any.whl
    pip install E:\test_pymagic_boxpackagefakerFaker-3.0.1-py2.py3-none-any.whl

    ##for openpyxl
    cd E: t est_pymagic_boxvenvScripts
    python E: t est_pymagic_boxpackagefakeret_xmlfile-1.0.1et_xmlfile-1.0.1setup.py install
    pip install E: t est_pymagic_boxpackagefakerjdcal-1.4.1-py2.py3-none-any.whl

    cd E: t est_pymagic_boxpackagefakeropenpyxl-2.6.4openpyxl-2.6.4
    E: t est_pymagic_boxvenvScriptspython setup.py install

    ##sampe 2


    ###sample 2 import openpyxl 报错如下:
    报错如下:
    import openpyxl
    ImportError: No module named et_xmlfile

    openpyxl.__version__

    解决办法:

    感谢 KiGiBoy https://www.cnblogs.com/ls11736/p/12398376.html
    1.下载et_xmlfile,并解压,然后复制解压后的et_xmlfile,et_xmlfile.egg-info两个文件夹到site-packages下(E:peng est_pymagic_boxvenvLibsite-packages)
    copy E:peng est_pymagic_boxvenvLibsite-packages
    2.
    cd E:peng est_pymagic_boxpackagefakeropenpyxl-2.6.4openpyxl-2.6.4
    E:peng est_pymagic_boxvenvScriptspython setup.py install

    ##sample 3 

    python中无法创建包含中文路径的文件

    https://blog.csdn.net/qq_34621987/article/details/80877210

    2.原因:python中默认使用unicode编码,将一个包含中文的utf-8编码的字符串用于创建文件时会出现上图错误中的情况,

    应该将encode('utf-8')去掉,或者在字符串前加上u,如 u"一张图片.jpg"

    ###########sample1

    ###sample 1

    1.首先找到anaconda,运行一次,即使启动不成功,也没关系。

    3.
    在spyder 右下角的控制台中可以用!pip 使用pip命令:
    !pip install 你要安装的模块


    pip install faker
    pip list
    import faker

    ######sample 2


    ###sampl 2
    3 spyder中debug的一些基本操作
    F12是设置断点:


    最上方总共有5个调试按钮,都是蓝色的,从左到右依次是:
    进入调试;运行当前行;进入函数或方法内运行;跳出函数或方法;运行到下一个断点;退出调试。

    我感觉还挺这些按钮的功能左右还对称的。

    大概就这样吧,感觉这几个按钮用好了,调试起来效率非常高。
    比如说在for循环里面,直接运行到下一个断点,就可以进入下一个循环,或者跳出循环等。
    这个就要慢慢摸索了…
    ————————————————
    版权声明:本文为CSDN博主「宇内虹游」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_39278265/article/details/84963883

     ###########sample 3

    3、按照程序员不同的需求进行调试。spyder中提供了调式面板,如图所示

    其中第一个按钮是进行调试按钮,点击或者按Ctrl+F5就进入调式,程序到达你设置的第一个断点,这步是调式所必需的;第二个是单步调式按钮,点击或者按Ctrl+F10就可以在设置的断点之后单步调式;第三个按钮可以进入到光标所在句子中含有的函数体内部,或者按快捷键Ctrl+F11;第四个是从此函数中跳出;第五个是跳转到下一个断点;最后一个按钮是停止调试。

    点击进行调试之后,可以在下图所示的地方看到变量信息。

    #################sampl
    https://blog.csdn.net/u012941152/article/details/83011110
    Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言

    cols = len(jntua.find_elements_by_xpath('//*[@id="rs"]/table/tbody/tr[1]/th'))

    从根目录/开始有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_selector中的>号
    /html/body/div/p

    查找 所有 包含id=rs 的元素,下一级table ,下一级tbody,下一级tr
    '//*[@id="rs"]/table/tbody/tr'
    查找 所有 包含id=rs 的元素,下一级table ,下一级tbody,下一级tr,下一级th
    '//*[@id="rs"]/table/tbody/tr[1]/th'))
    找到所有 包含id=rs 的元素,下一级table ,下一级tbody,下一级tr[字符],下一级th[字符]
    "//*[@id='rs']/table/tbody/tr[" + str(r) + "]/td[" + str(c) + "]"

    ####sample 3

    selenium报错Message: This version of ChromeDriver only supports Chrome version xx

    https://blog.csdn.net/qq_41605934/article/details/116330227

    ######sample 1

    https://www.py.cn/tools/spyder/16326.html

    怎么在spyder中建立工程?

     

    头像

    yang

    2020-02-12 12:37:592544浏览 · 0收藏 · 0评论

    在spyder中建立工程的方法:(推荐:spyder使用教程

    1、Spyder项目的创建

    新建一个Spyder项目需要点击Spyder上方标签栏中的Projects中的New Project选项。然后给项目取一个名字,选择一下项目存放的路径即可。

    2、Spyder项目的打开

    Spyder项目文件夹必须 存在.spyproject 这个文件夹,否则Spyder无法打开工程文件夹  

    Spyproject这个文件夹包含codestyle.ini encoding.ini vcs.ini workspace.ini 这几个配置文件

    4,( 选择工具条的 project / open project 。这样就可以看到有右边的该项目文件的导航条)

    ##############

    ################sample 2 定位span 模块
    https://blog.csdn.net/weixin_42346330/article/details/87093937
    selenium如何定位span元素

    test-runing 2019-02-12 16:02:48 24887 收藏 11
    分类专栏: python+selenium自动化测试 文章标签: span元素定位 元素定位
    版权

    python+selenium自动化测试
    专栏收录该内容
    7 篇文章0 订阅
    订阅专栏
    在做自动化测试时,我们需要定位元素属性来进行操作,今天在做自动化时发现我要定位的登录注册元素找不到,我看了下代码发现,我用xpath获取绝对路径后,发现找不到,F12查看代码如下

    代码如下

    # _*_ coding: utf-8 _*_
    from selenium import webdriver
    import logging
    import time
    driver =webdriver.Chrome()
    url="http:************ "
    #driver.maximize_window()
    driver.get(url) #进入兼职啦首页
    time.sleep(2)
    driver.find_element_by_xpath('//*[@id="J_site_login"]').click()
    然后直接报错

    原因:是因为它是内联函数,首先得定位到它的所在的模块。然后再进行定位内联函数

    最后代码如下

    最后俩行可以组合成一行

    driver.find_element_by_xpath('/html/body/div[2]/div/div[4]/div/span//*[@id="J_site_login"]').click()

    然后就
    ————————————————
    版权声明:本文为CSDN博主「test-runing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_42346330/article/details/87093937


    ########sample 3 获得标签的 绝对路径
    https://blog.csdn.net/qq_33852206/article/details/108767757

    # -*- coding: utf-8 -*-
    """
    Created on Mon Jul 19 16:12:28 2021
    ""

    #通过下拉菜单,和 平级别菜单 来判断 div
    from selenium import webdriver
    import time
    driver = webdriver.Chrome(executable_path="E:logschromedriver_win32chromedriver.exe")
    #url = 'http://www.baidu.com'
    #driver.get(url)
    #
    ##绝对路径定位
    #input_absPath = driver.find_element_by_xpath('/html/body/div/div/div[5]/div/div/form/span/input')
    #print('绝对路径定位',input_absPath.get_attribute('outerHTML'))


    url = 'http://ai.com.cn'
    driver.get(url)

    #绝对路径定位
    #input_absPath = driver.find_element_by_xpath('/html/body/app-root/app-login/div/form/div[4]')

    input_absPath = driver.find_element_by_xpath('/html/body/app-root/app-login/div/form/div[4]/button/span')
    print('绝对路径定位',input_absPath.get_attribute('outerHTML'))

    ########sample 4  IT桔子网模拟登陆,selenium定位type属性

    https://www.cnblogs.com/kai-/p/13191377.html

    selenium定位type属性

    driver.find_element_by_css_selector('input[type="password"]').send_keys('Password')

    from selenium import webdriver	#用来驱动浏览器的
    from selenium.webdriver import ActionChains	#破解滑动验证码的时候用,可拖动图片
    from selenium.webdriver.common.by import By #按照什么方式查找,By.ID,By.CSS_SELECTOR
    from selenium.webdriver.common.keys import Keys	#键盘按键操作
    from selenium.webdriver.support import expected_conditions as EC		# 和下面WebDriverWait一起用的
    from selenium.webdriver.support.wait import WebDriverWait	#等待页面加载某些元素
    
    driver = webdriver.Chrome()
    driver.get('https://www.itjuzi.com/login?url=%2F')
    
    # 方式一 Xpath
    # driver.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div/div/div/div/div[2]/div[1]/form/div[1]/div/div[1]/input').send_keys("jeremy.li@mioying.com")
    # driver.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div/div/div/div/div[2]/div[1]/form/div[2]/div/div/input').send_keys('Password')
    # driver.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div/div/div/div/div[2]/div[1]/div/button').click()
    
    # driver.find_element_by_xpath('//form[@class="el-form"]/div/div/div/input').send_keys('jeremy.li@mioying.com')
    # driver.find_element_by_xpath('//form[@class="el-form"]/div[2]/div/div/input').send_keys('Password')
    
    # 方式二
    driver.find_element_by_css_selector('.el-input__inner').send_keys('jeremy.li@mioying.com')
    driver.find_element_by_css_selector('input[type="password"]').send_keys('Password')


    ############sample 4

    selenium.元素定位(find_element_by)

    https://www.cnblogs.com/youngleesin/p/10447907.html

    百度首页面做个搜索selenium的例子,演示五个比较常用的定位方式
    复制代码
    from selenium import webdriver
    from time import sleep
    
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)   #隐形等待
    driver.get('https://www.baidu.com/')
    sleep(1)
    
    #以五种定位方式定位到百度首页的搜索输入框
    kw_find = driver.find_element_by_id('kw')
    #kw_find= driver.find_element_by_class_name('s_ipt')
    #kw_find= driver.find_element_by_name('wd')
    #kw_find = driver.find_element_by_xpath('//*[@id="kw"]')
    #kw_find = driver.find_element_by_css_selector('#kw') #id用#kw,class用.s_ipt ,与css的简写方式相同
    
    #send_keys() 是selenium自带的方法,用来输入文本
    kw_find.send_keys('selenium')
    
    #使用id定位方式定位到搜索按钮
    su_find = driver.find_element_by_id('su')
    
    #click() 是selenium自带的方法,用来点击定位的元素
    su_find.click()
    
    sleep(1)
    driver.quit()



    #####sample 5 通过chrom 浏览器查找路径xpath的路径
    https://www.cnblogs.com/lukechenblogs/p/10481000.html

    selenium-百度搜索框输入后,定位联想下拉框元素  (重要)

     #举例如下:

    /html/body/div[1]/div[1]/div[5]/div[1]/div/form/div/ul/li[1]

    /html/body/div[1]/div[1]/div[5]/div[1]/div/form/div/ul/li[2]

    <li data-key="123123交警官网app" class="bdsug-overflow">123<b>123交警官网app</b></li>

    //*[@id="form"]/div/ul/li[2]

    #举例如下:

    1、输入关键字后,显示联想下拉框,鼠标右键对应的联想字段,点击检查,就可在F12模式下元素查看器中定位到,之后使用Xpath定位。 (重要)

     
  • 相关阅读:
    自定义UITableViewCell实现类似iBooks图书列表形式
    苹果有默认的手势识别,左右移动
    ios4 private framework
    svn 重定向
    代码合集
    CHM无法显示内容
    全面优化Windows2003
    .Net 2003使用数据库事务对象注意
    什么是托管代码和托管数据
    概念:反射和序列化
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/14923628.html
Copyright © 2011-2022 走看看