写PO的时候,想把page和case 文件分开存不同的文件夹,但是在调用模块的时候就出现了问题。后来终于解决了,记录下

-------------------------------------------------------------分割线--------------------------------------------------------------------------

1.文件夹pages存放page文件、test_cases存放测试用例

2.文件结构如下:

--pages

-----login_pg.py

--test_cases

-----1_test_login.py

  现在1_test_login.py中调用login_pg.py,这种情况就属于跨目录调用模块,这里要先在文件夹pages下,创建一个__init__.py,这样page就是一个完成的模块,可以被调用。

  下面在文件夹test_cases,下的login_pg.py中调用login_pg.py,如下导入:

import sys,os

parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#跨目录调用
sys.path.insert(0, parentdir)

from pages.login_pg import LoginPage #这里导入即可

########但是,在这样导入后,这里的问题解决了,又出了其他问题###############

问题:在pages下的login_pg.py,又调用了pages下的base_pg.py中的类,原来的写法:from base_pg import BasePage,但是现在报错,找不到base_pg这个模块。

解决后:发现要这样写,from .base_pg import BasePage(PS:加上点,形成一个相对login_pg的引用),这样就可以了

但是这样加. 以后可以还会发生其他的错误,所以这里写成这样:当正常到不进去的时候,就加点

try:
from base_pg import BasePage
except ImportError:
from .base_pg import BasePage

---------------------以上还是需要弄清楚python的引包机制才可以------------------

自己再研究下

最新文章

  1. 设置一个顺手的Xcode
  2. simpson法求积分 专题练习
  3. [转]Asp.net MVC使用Filter解除Session, Cookie等依赖
  4. CSS - toggle collapse 类似bootstrap的展开效果
  5. 第一课 Hello
  6. linux 上传/下载文件到windows工具
  7. 使用Ctex总结1
  8. Linq中的常用方法
  9. Java学习之List接口
  10. 开源的Owin 的身份验证支持 和跨域支持
  11. Database SQL script automation management tools investigation
  12. JS 昵称,手机号,邮箱判断
  13. HDU 4812 D Tree 树分区+逆+hash新位置
  14. Vue.js2.0中的变化(持续更新中)
  15. linux运维工作内容及岗位要求
  16. leetcode974
  17. Django创建和配置文件
  18. bedtools神器 | gtf转bed | bed文件运算
  19. LoadRunner-迭代和并发设置
  20. live555 编译

热门文章

  1. android 除法运算保留小数点
  2. django dynamic model
  3. dyld_decache&MesaSQLite
  4. libevent源码深度剖析六
  5. 虚拟机Ubuntu16.04安装lrzsz
  6. React项目中的registerServiceWorker的作用
  7. CSS 中的 px、em、rem 和 vh
  8. dynamic和nullable一起使用时的注意
  9. Daubechies Wavelet
  10. 编写高质量代码改善C#程序的157个建议——建议49:在Dispose模式中应提取一个受保护的虚方法