Selenium 基于 py 封装的 selenium,case 之间无法互相调用,望大佬给看看

yewuxue · 2018年07月10日 · 最后由 jiazurongyu 回复于 2018年07月11日 · 892 次阅读


baseCase.py主要是把setup和teardown单独提取出来放在一个py文件中,避免每个test都写,减少重复。

baidu_search_page_case.py主要是test,通过继承baseCase来在setup执行后执行test,以及引入page代码,如下

,第二个cese想调用上面的case,但是调用时报了如下的错,目前看是driver传递的问题,可是不知道该怎么改,求大神帮忙

共收到 6 条回复 时间 点赞
  1. 你这个命名相当的不规范, from case.baidu_search_page_case import baidu_search_page_case 我看了半天才发现导进来是class。😂
  2. baidu_search_page_case这个类你定义过 init() 这个方法吗?没有的话为啥要在初始化的时候传入self.driver
  3. 这个报错提示很明确了,在D:\python\lib\unittest\case.py 这个模块里定义了 init() 方法 并且里面有一段代码testMethod = getter(self, methodNme) 这个 methodName是要一个string类型

这个问题很明显是你 from case.XXXX时,解释器判断错了目录位置,你改成这样试试 from .case.XXXXX

python基础要好好补补啊。

taflo 回复

1.习惯了首字母不大写😅 😅
2.这个是想传递driver
3.这是unittest内部函数,没搞懂哪错了,虽然报错了
4.引包时习惯了写包名,没用相对地址

yewuxue 回复

请参照pep8代码规范,不规范的code看的累😂
想传driver那也有地方接啊,我是没看到接的地方。
包名和内部函数重复了,用相对引用应该解决问题。

taflo 回复

谢谢,这个重复的问题还真没注意,谢谢谢谢

taflo 回复


这两个地方需要driver

用discover 去读覆盖文件夹。
第一个符合cmp的文件执行setUpClass(cls)
最后一个执行tearDownClass(cls)

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册