【问题标题】:Writing tests with selenium and unittest Python使用 selenium 和 unittest Python 编写测试
【发布时间】:2021-09-20 11:28:35
【问题描述】:

我正在使用 unittest 和 selenium 编写一个简单的登录测试。

我想知道 Unittest 如何知道测试是否失败?如果登录成功,我想在终端打印“Pass”,如果出现错误(例如密码错误),我想在终端打印“Fail”。

这是我目前拥有的。

class SignIn(unittest.TestCase):

def setUp(self):
    self.driver = driver
    self.driver.get('https://example')

def test_sign_in(self):
    self.driver.find_element_by_name('user[email]').send_keys('example')
    self.driver.find_element_by_name('user[password]').send_keys('example')
    self.driver.find_element_by_name('commit').click()


def tearDown(self):
    self.driver.close()

if __name__ == '__main__':
   unittest.main()

【问题讨论】:

  • 有断言,你为什么不用呢?
  • 我将如何实现它?我试过在最后添加“assert True”,但如果用户登录失败,它不会通过测试。@cruisepandey

标签: python selenium unit-testing


【解决方案1】:

方法一: 如果用户登录后有任何成功登录消息,您可以使用简单的if-else 语句。您可以使用以下代码补丁

def test_sign_in(self):
    self.driver.find_element_by_name('user[email]').send_keys('example')
    self.driver.find_element_by_name('user[password]').send_keys('example')
    self.driver.find_element_by_name('commit').click()
    success_msg=find_element_by_xpath('{{xpath of the success message}}')
    WebDriverWait(driver, 5).until(EC.element_to_be_clickable(By.XPATH,success_msg))
    if success_msg:
       print("Successfully logged in")
    else:
       print("Unsuccessful")

方法二: 您可以使用Try Except 块。

def test_sign_in(self):
    try:
      self.driver.find_element_by_name('user[email]').send_keys('example')
      self.driver.find_element_by_name('user[password]').send_keys('example')
      self.driver.find_element_by_name('commit').click()
      print("Successfully logged in")
    except:
      print("An exception occurred")

以上示例是原始代码。更正标识、拼写错误等。试试看,让我知道它是否对您有用!干杯。

【讨论】:

  • 我尝试了第二种方法,这正是我所需要的。谢谢 ! @LibinThomas
  • 实际上,我只是注意到它会打印成功,即使它不是。也没有成功消息。它只是让你登录。如果页面重定向,我有办法吗, print('Success') @LibinThomas
【解决方案2】:

您可以使用断言,

假设登录后,您将看到仪表板或欢迎屏幕,对吗?

你需要像下面这样断言它们:

try:
    assert "Expected_message_here" in driver.find_element_by_xpath('welcome page xpath here').text
except:
    print("looks like a failure")
    pass

此链接包含所有断言click here

我建议您使用不同的功能来验证失败场景。

你也可以在这里refer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多