我是Python的新手,请耐心等待我的无知。我有以下结构:
parentDir\
runTests.py
commonpageelements.py
testcases\
__init__.py
test1.py
test2.py
我想初始化webdriver并在中打开页面运行测试.py,然后将参数传递给test1.py、test2.py等。我也想页面元素.py包含公共页元素的文件。我将在下面详细介绍python文件。在
为commonpageelements.py我只是简单地定义了各种元素,比如username=“inspected\u name”。在
我尝试了以下方法运行测试.py以下内容:
^{pr2}$然后,在test1.py中我有:
class test1(username, password):
def test_login_logout():
driver = self.driver
driver.get(self.base_url)
driver.find_element_by_id(pageelements.textfield_username).clear()
driver.find_element_by_id(pageelements.textfield_username).send_keys(username)
driver.find_element_by_id(pageelements.textfield_password).clear()
driver.find_element_by_id(pageelements.textfield_password).send_keys(password)
driver.find_element_by_name(pageelements.button_submit).click()
driver.find_element_by_id(pageelements.link_logout).click()
我真的不知道该怎么做。我有点瞎了眼,试着调整一下,却一无所获。任何帮助将不胜感激!谢谢
我通过重写运行测试.py具体如下:
其他人会比我更能增加价值,但我注意到以下几点:
if __name__ == '__main__'
需要在最外面的作用域上(否则它将留在类内部,不会被执行)。在common_page_elements
时,不会在run_tests.py
中引用它。如果您在这里定义username
,那么您需要在它前面显式地引用common_page_elements
。在test_loginLogout
函数中,向它传递两个参数。我不是专家,但我从未见过将self
以外的变量传递给测试用例的情况。因此,即使重新构造代码以正确地从test1.py
调用函数test_login_logout
,也不会传递self
(它将保存setUp
的内容)。所以这行不通。在test1.py
似乎没有任何必要的信息来运行您所需要的设置报告。在unittest.TestLoader().loadTestsFromModule()
函数,该函数将允许您加载其他测试模块并执行它们。在这是完全未经测试的代码(我知道这是可怕的双关语),但类似这样的代码可能在您的情况下有效:
至于
^{pr2}$setUp
和tearDown
片段,我会将它们放在您的测试模块中,因此您的Test1Test
可以如下所示:相关问题 更多 >
编程相关推荐