我的项目中需要在一个.py中调用另一个文件夹的.py。最开始用的方法是:
导入sys包,然后使用sys.path.append()存储路径
import unittest # 导包
from selenium import webdriver
from time import sleep
# 这里我使用的是sys来记录需要调用文件的路径
import sys
sys.path.append("../page")
import User
class Set(unittest.TestCase):
"""XXXXXX测试用例"""
def setUp(self):
self.d = webdriver.Chrome()
self.d.get(User.URL)
self.d.maximize_window()
# self.d.implicitly_wait(20)
def tearDown(self):
# 关闭浏览器,恢复测试数据等等
sleep(1)
self.d.quit()
def test_01_Correct_account_password(self):
"""登录"""
self.d.find_element_by_xpath('//*[@id="app"]/div/div/div[2]/div[1]/input').send_keys('17600000001')
self.d.find_element_by_xpath('//*[@id="app"]/div/div/div[2]/div[2]/input').send_keys('123456')
self.d.find_element_by_xpath('//*[@id="app"]/div/div/div[2]/div[3]/button').click()
if __name__ == '__main__':
unittest.main(verbosity=1)
在单个test文件中执行时没问题的,但是使用run.py执行就会出错
报告中提示:导入用户模块时出错:没有名为“user”的模块
这就说明我使用sys包没有起到效果,然后我又在settings中查看我的项目包是否正常
红色部分就是代表项目异常,需要删除掉,可是我删除掉还是报同样的错
.
.
有的前辈告诉我使用Mark Directory as Sources Root可以解决
说句老实话,俺也不懂为什么要这样做,好像是这样做了后导入时不用加上文件夹名字,其实对我来说 然并卵
废了老大劲,我却忽略了最基本也是最实用的导包方法 from XX import XX
from page import User
.
一段代码搞定,还没有那么多配置啊,注意的鬼东西
苦恼我半天的问题就这么搞定了
所以给大家提个醒,无论你技术多厉害,基本功还是最重要的
遇到问题不要首先想着使用很复杂的代码去解决,说不定最基本的代码就可以搞定呢,要跳出惯性思维,这也是一个测试人员所必备的素质
.
在这里补充下导包的格式:
从A.py中导入B.py
import A
from importtest import B
from importtest.bbb import B
from bbb.B import name