上午剛把macaca的環境在公司的電腦上吧web 端的環境給搭建好,於是乎,看看網上的例子,看看官方的文檔
https://macacajs.github.io/wd.py/ 可以在這個鏈接看到原滋原味針對python的api接口,還有例子,其實看着官方給出來的文檔和例子是那么簡潔通俗易懂,所以無論學什么我感覺學習官網的例子還是很重要的,搭好環境要不要實踐呢,當然我們的答案是肯定的,實踐出真知,動手,拿博客園的登錄,和登錄后在個人中心搜索為例子,算是對macaca的入門吧。
https://passport.cnblogs.com/user/signin
首先我們去查看下登錄界面,

看到這個我們是不是感覺很爽啊,是的 直接id就能搞定了,這對我們初學一個工具的人來說有沒有很簡單,有沒有很easy,那么我們第一個的登錄用例的輸入框的定位是不是就很好定位了,通過id就可以定位到我們的所需要的元素了,忘了還有一個斷言啊,這里的斷言我們就沒有用id,換個定位方式吧,定位這個界面的個人資料,咋一看,classname完全可以定位,soeasy了,那么我們接着來看下登陸后去搜索園友

再次被我們發現了,這個輸入框和搜索是不是還是很好定位的啊,小伙伴們都知道,那么這樣是沒有難度的,沒有難度的,很快我們的用例就能搞定,於是乎,獻上代碼。
from macaca import WebDriver
import unittest
import HTMLTestRunner,time
die_arp={
'platformName':'Desktop',
'browserName':'electron'
}
server_url={
'hostname':'localhost',
'post':3456
}
class BokeyuanTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.deriver=WebDriver(die_arp,server_url)
cls.deriver.init()
cls.deriver.get('https://passport.cnblogs.com/user/signin')
@classmethod
def tearDownClass(cls):
cls.deriver.quit()
def test_login(cls):
cls.deriver.element_by_id('input1').send_keys('北漂的雷子')
cls.deriver.element_by_id('input2').send_keys('li.930423')
cls.deriver.element_by_id('signin').click()
cls.assertEqual(cls.deriver.element_by_class_name('set_profile').text,'編輯個人資料')
def test_serc(cls):
cls.deriver.element_by_id('txt_user_name').send_keys('逍遙豆')
cls.deriver.element_by_id('btn_blue').click()
cls.assertTrue('逍遙豆',cls.deriver.title)
if __name__ == '__main__':
suite = unittest.TestSuite()
now = time.strftime('%Y-%m%d', time.localtime(time.time()))
report_dir = r'%s.html' % now
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(BokeyuanTest))
re_open = open(report_dir, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=re_open, title='demo by macaca', description='測試結果')
runner.run(suite)
運行運行,

速度是不是很快呢,看看我們的測試報告

完美,測試完畢,測試報告已出,后續實驗正在進行中,Macaca不錯,阿里開源
