【发布时间】:2016-05-02 07:53:02
【问题描述】:
username = "robertredrain@gmail.com"
password = ""
tomailid = "robertredrain@yahoo.com"
emailsubject = "robertredrain@yahoo.com"
mailbody = "Great! you sent email:-)" + "\n" + "Regards," + "\n" + "Robert"
class send_email(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.baseUrl = "http://mail.google.com/intl/en/mail/help/about.html"
def tearDown(self):
self.driver.close();
def testLoginEmail(self):
self.driver.get(self.baseUrl)
self.driver.maximize_window()
self.driver.find_element_by_id("gmail-sign-in").click()
self.driver.find_element_by_id("Email").clear()
self.driver.find_element_by_id("Email").send_keys(username)
self.driver.find_element_by_id("next").click()
time.sleep(5)
self.driver.find_element_by_id("Passwd").clear()
self.driver.find_element_by_id("Passwd").send_keys(password)
self.driver.find_element_by_id("signIn").click()
#Verify login
if "Gmail" in self.driver.title:
print("Logged in sucessfully !!!" + self.driver.title)
else:
print("Unable to loggin :-( " + self.driver.title)
time.sleep(5)
def testComposeEmail(self):
self.driver.find_element_by_xpath("//div[text()='COMPOSE']").click()
time.sleep(5)
self.driver.find_element_by_class_name("vO").send_keys(tomailid)
self.driver.find_element_by_class_name("aoT").send_keys(emailsubject)
self.driver.find_element_by_class_name("Am").clear()
self.driver.find_element_by_class_name("Am").send_keys(mailbody)
self.driver.find_element_by_xpath("//div[text()='Send']").click()
if __name__ == '__main__':
unittest.main()
我正在使用带有 Selenium 的 Python Unittest 运行此发送 gmail 测试。该过程是在SetUp上运行后,运行第一个函数testLoginEmail,它可以成功登录到我的gmail帐户。然后我想继续运行第二个函数testComposeEmail,它应该在第一个函数之后运行,因为它需要点击“撰写”按钮。但它不能运行。
有人可以帮助修改如何运行第二个功能的代码吗?非常感谢!
【问题讨论】:
-
你有什么错误?
-
通常要求订购测试会导致糟糕的测试设计,但如果您知道自己在做什么,您可以按字母顺序命名它们,或者使用与described in this answer相同的功能
标签: python email selenium send python-unittest