|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Sheldon墨鱼 于 2020-4-13 16:16 编辑
各位大神,我最近在学 python + selenium 的 webUI 自动化测试,
遇到一个关于python语法知识的问题:
如下图,是我的项目结构:
我在当前的 ./testCases/test.py 中引入了 ./pageobjects/group.py & login.py 这 2 个 py;
pageobjects下的两个 py 文档又继承了 ./framework/base.py 父类;
然后,test.py 在新类中对引入的类进行实例化,在新类的不同多个方法中分别各自调用类实例的方法。
程序报错,报错的内容是在执行第二个方法时,无法定位到元素。
而如果,我在 test.py 中只用一个方法调用不同的类实例的方法,则可以成功。
说了一大堆,代码如下:
- import unittest
- from framework.browser_engine import BrowserEngine
- from pageobjects.login_page import LoginPage
- from pageobjects.group_page import GroupPage
- class CreateGroup(unittest.TestCase):
- """新增一个分组"""
- driver = None # 定义一个全局的 driver
- @classmethod
- def setUpClass(cls):
- browser = BrowserEngine(cls)
- cls.driver = browser.open_browser(cls)
- cls.login_page = LoginPage(cls.driver) # 引入的类的实例化
- cls.group_page = GroupPage(cls.driver)
-
- # 新类的第一个方法,先用了第一个实例的方法
- def test_login(self):
- """登录"""
- self.login_page.login_account('jctest1', 'admin123')
- self.login_page.send_submit_btn()
- time.sleep(2)
-
- # 第二个方法中,又用了第二个实例的方法
-
- # [b]也就是在这里开始报错,无法定位的[/b]
- def test_create_group(self):
- """新增活动"""
- self.group_page.create_group()
- self.group_page.mapping_group_name()
-
- # 又回到第一个实例的方法
- def test_logout(self):
- """用户登出"""
- self.login_page.logout()
- @classmethod
- def tearDownClass(cls):
- cls.driver.quit()
- if __name__ == '__main__':
- unittest.main()
复制代码
而如果这个新类中只有一个方法,则可以成功定位到元素,如下:
```
- import unittest
- from framework.browser_engine import BrowserEngine
- from pageobjects.login_page import LoginPage
- from pageobjects.group_page import GroupPage
- class CreateGroup(unittest.TestCase):
- """新增一个分组"""
- driver = None
- @classmethod
- def setUpClass(cls):
- browser = BrowserEngine(cls)
- cls.driver = browser.open_browser(cls)
- cls.loginpage = LoginPage(cls.driver)
- cls.group_page = GroupPage(cls.driver)
-
- #这个方法里,既有实例 A,又有实例 B 的方法
- def test_create_group(self):
- """新增活动"""
- self.loginpage.login_account('jctest1', 'admin123')
- self.loginpage.send_submit_btn()
- self.group_page.create_group()
- self.group_page.mapping_group_name()
- @classmethod
- def tearDownClass(cls):
- cls.driver.quit()
- if __name__ == '__main__':
- unittest.main()
复制代码
```
所以,要怎么修改比较好呐?
先行谢过!
|
-
项目结构 1
|