import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class KenLogin(unittest.TestCase):
def test_globe(self):
global driver
driver = webdriver.Chrome(executable_path='E:\Learning\chromedriver.exe')
driver.maximize_window()
def test_login(self):
driver.implicitly_wait(2000)
driver.get("http://qa.kenzen.com")
username = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[1]/input")
password = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/div[2]/input")
username.send_keys("pardeepk@clovity.com")
password.send_keys("Kenzen@123")
button = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div[2]/form/button")
button.send_keys(Keys.ENTER)
print("Login Pass")
def test_home(self):
driver.implicitly_wait(2000)
teamsummary = driver.find_element_by_id("teamsummary")
teamsummary.click()
print("Home Pass")
def test_newteam(self):
addteam = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div/div[1]/ul[2]/li/button")
addteam.click()
teamname = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div/div[2]/div/div[1]/input")#.send_keys(data)
admin = driver.find_element_by_id("administrator")
admin.send_keys("qa@kenzen.com,qa1@kenzen.com")
addteambutton = driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div/div/div[2]/div/div[6]/button")
addteambutton.click()
print("Team Added")
def tearDown(self):
driver.close()
if __name__ == "__main__":
unittest.main()
任何人都可以帮我解决这个问题吗?
我试图运行多个函数并得到错误:
找到文件......完成 . 导入测试模块......完成 .
================================================== ====================
错误:test_home(kenZen.KenLogin.KenLogin)
回溯(最近一次调用最后一次):文件“E:\ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py”,第37行,在test_home driver.implicitly_wait(2000)文件“C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第895行,在implicitly_wait'ms'中:float(time_to_wait)* 1000})文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第314行,执行self.error_handler.check_response(响应)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py“,第242行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common . exceptions.WebDriverException:消息:没有这样的会话(驱动程序信息:chromedriver = 2.38.552522(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform = Windows NT 10.0.14393 x86_64)
================================================== ====================
错误:test_home(kenZen.KenLogin.KenLogin)
回溯(最近一次调用最后一次):文件“E:\ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py”,第60行,在tearDown driver.close()文件“C:\ Users \ Pardeep \ AppData \ Local \程序\ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第681行,关闭self.execute(Command.CLOSE)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第314行,执行self.error_handler.check_response(响应)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py“,第242行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common.exceptions.WebDriverException:Message :没有这样的会话(驱动程序信息:chromedriver = 2.38.552522(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform = Windows NT 10.0.14393 x86_64)
================================================== ====================
错误:test_login(kenZen.KenLogin.KenLogin)
回溯(最近一次调用最后一次):文件“E:\ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py”,第21行,在test_login driver.implicitly_wait(2000)文件“C:\ Users \ Pardeep \ AppData \ Local” \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第895行,在implicitly_wait'ms'中:float(time_to_wait)* 1000})文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第314行,执行self.error_handler.check_response(响应)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py“,第242行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common . exceptions.WebDriverException:消息:没有这样的会话(驱动程序信息:chromedriver = 2.38.552522(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform = Windows NT 10.0.14393 x86_64)
================================================== ====================
错误:test_login(kenZen.KenLogin.KenLogin)
回溯(最近一次调用最后一次):文件“E:\ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py”,第60行,在tearDown driver.close()文件“C:\ Users \ Pardeep \ AppData \ Local \程序\ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第681行,关闭self.execute(Command.CLOSE)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第314行,执行self.error_handler.check_response(响应)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py“,第242行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common.exceptions.WebDriverException:Message :没有这样的会话(驱动程序信息:chromedriver = 2.38.552522(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform = Windows NT 10.0.14393x86_64的)
================================================== ====================
错误:test_newteam(kenZen.KenLogin.KenLogin)
Traceback(最近一次调用最后一次):文件“E:\ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py”,第46行,在test_newteam中addteam = driver.find_element_by_xpath(“/ html / body / div [1] / div / div [2] / div / div / div [1] / ul [2] / li / button“)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site- packages \ selenium \ webdriver \ remote \ webdriver.py“,第387行,在find_element_by_xpath中返回self.find_element(by = By.XPATH,value = xpath)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第957行,在find_element'value':value})['value']文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第314行,执行self.error_handler.check_response(响应)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py“,第242行,在check_response中引发exception_class(消息,屏幕,堆栈跟踪) selenium.common.exceptions.WebDriverException:消息:没有这样的会话(驱动程序信息:chromedriver = 2.38.552522(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform = Windows NT 10.0.14393 x86_64)
================================================== ====================
错误:test_newteam(kenZen.KenLogin.KenLogin)
回溯(最近一次调用最后一次):文件“E:\ Learning \ Workplace \ kenZen \ kenZen \ KenLogin.py”,第60行,在tearDown driver.close()文件“C:\ Users \ Pardeep \ AppData \ Local \程序\ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第681行,关闭self.execute(Command.CLOSE)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第314行,执行self.error_handler.check_response(响应)文件”C:\ Users \ Pardeep \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py“,第242行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common.exceptions.WebDriverException:Message :没有这样的会话(驱动程序信息:chromedriver = 2.38.552522(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform = Windows NT 10.0.14393 x86_64)
----------------------------------------------------------------------
Ran 4 tests in 7.928s
FAILED (errors=6)
1 回答
使用Python和unittest时,您需要注意以下事项:
def setUp(self) :setUp()是初始化的一部分,在您将要在此测试用例类中编写的每个测试函数之前调用此方法 .
maximize_window() :而不是使用
maximize_window()
使用 chrome.options 类来最大化浏览器窗口 .implicitly_wait() :Implicit Wait一旦设置,就会为WebDriver对象实例的生命周期设置隐式等待 .
始终在
tearDown(){}
方法中调用driver.quit()
以正常关闭和销毁WebDriver和Web客户端实例 .这是您自己的代码块,上面提到了一些小调整:
根据您的注释更新,如果您只想调用
setup()
函数一次,您可以使用setUpClass和tearDownClass类方法,这些方法在执行类时在测试之前和之后执行 .参考文献
在这里你可以找到关于What is unittest in selenium Python?的详细讨论
在这里您可以找到关于Unittest setUp/tearDown for several tests的详细讨论
在这里您可以找到关于Run setUp only once的详细讨论