【问题标题】:Selenium Tests runs in random orderSelenium 测试以随机顺序运行
【发布时间】:2021-06-29 23:16:20
【问题描述】:

我希望有人能告诉我我在硒方面面临的一个问题。

我有一个网站,我想自动化一些测试,这样我就不必每次都手动进行。目前我只需要测试登录页面是否可以正常工作,以便对这个工具更有信心。

所以我做了什么,我实现了 2 个类来实现这个目的。

第1类,需要打开网站并查看登录页面的标题

Class 2,点击登录,输入用户名和密码,点击登录按钮。

不用说工作流程工作得很好,但我很困惑,因为测试向后运行。所以当我运行我的测试时,selenium 首先登录,然后打开另一个浏览器来检查标题。

我这样配置任务:

# Main test case
class LoginTestTitle(unittest.TestCase):
    def setUp(self):
        path = "/Users/Users/Desktop/ChromeWebDriver/chromedriver"
        self.driver = webdriver.Chrome(path)
        self.driver.get("<link-to-webpage>")

    def test_title(self):
        loginPage = page.MainPage(self.driver)
        # assert loginPage.is_title_matches()
        if loginPage.is_title_matches():
            print("Found Page Title")
            assert loginPage.is_title_matches()
        else:
            print("Title not found")

这个类来检查登录功能

class LoginTestButton(unittest.TestCase):
    def setUp(self):
        path = "/Users/User/Desktop/ChromeWebDriver/chromedriver"
        self.driver = webdriver.Chrome(path)
        self.driver.get("link-to-website")

    def test_outthin_button(self):
        mainPage = page.MainPage(self.driver)
        time.sleep(5)
        if mainPage.sign_in_with_outthink():
            print("Error, no Button found")
            assert mainPage.sign_in_with_outthink()
        else:
            print("OutThink button ==> OK")

        if mainPage.username_field():
            print("Error")
            assert mainPage.username_field()
        else:
            print("Username field ==> OK")

        if mainPage.password_field():
            print("Error password")
            assert mainPage.password_field()
        else:
            print("Password field ==> OK")

        if mainPage.sign_in():
            print("Error, No sign in button found")
            assert mainPage.sign_in()
        else:
            print("Logging in ==> OK")

我知道 selenium setUP 将分别运行每个测试,所以如果它在 2 个不同的浏览器中运行测试我很好,但我不明白为什么它在标题测试之前运行登录,如果我的类已经设置按此顺序

非常感谢您的宝贵时间和帮助

【问题讨论】:

  • 我认为它是按字母顺序排列的,不是吗?
  • 你是对的。这很奇怪。将类名更改为正确运行的字母顺序。太感谢了。如果您想将其添加为答案,我可以投票:)

标签: python selenium


【解决方案1】:

这是按字母顺序运行的,我建议你有这样的结构:

  def test_01_first():
  print('1')
  def test_02_next():
  print('2')
  def test_03_last():
  print('3')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多