【发布时间】: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 个不同的浏览器中运行测试我很好,但我不明白为什么它在标题测试之前运行登录,如果我的类已经设置按此顺序
非常感谢您的宝贵时间和帮助
【问题讨论】:
-
我认为它是按字母顺序排列的,不是吗?
-
你是对的。这很奇怪。将类名更改为正确运行的字母顺序。太感谢了。如果您想将其添加为答案,我可以投票:)