#include "stdafx.h" #include "epi.h" using namespace std; void TraceEvalidLog(IEvalid * p) { if (p == NULL) return; IEvalidLogCollection * pColl; if (SUCCEEDED(p->get_LastPlaybackLog(&pColl))) { long numItems; pColl->get_length(&numItems); for(long i = 0; i < numItems; ++i) { IEvalidLog * pLog; pColl->item(i, &pLog); long seq, cmd, line, a, f, t; CComBSTR date, time, prj, grp, tst, stat, msg; pLog->get_accumTime(&a); pLog->get_cmdNum(&cmd); pLog->get_date(&date); pLog->get_fineTime(&f); pLog->get_groupName(&grp); pLog->get_lineNum(&line); pLog->get_message(&msg); pLog->get_projectName(&prj); pLog->get_seqNum(&seq); pLog->get_status(&stat); pLog->get_testName(&tst); pLog->get_time(&time); pLog->get_totalCmdTime(&t); pLog->Release(); cout << CString(date) << " " << CString(time) << "\t" << seq << "\t" << cmd << "\t" << line << "\t" << CString(prj) << "\t" << CString(grp) << "\t" << CString(tst) << "\t" << CString(stat) << "\t" << a << "\t" << f << "\t" << t << "\t" << CString(msg) << endl; } pColl->Release(); } } int main() { ::CoInitialize(NULL); IEvalid * pEvalid = NULL; HRESULT hr = CoCreateInstance(CLSID_Evalid, NULL, CLSCTX_INPROC_SERVER, IID_IEvalid, (void**)&pEvalid); if (SUCCEEDED(hr)) { // ---------------------------------------------------------------------------- pEvalid->InitLink(CComBSTR("http://www.google.com")); TraceEvalidLog(pEvalid); pEvalid->Wait(3959); TraceEvalidLog(pEvalid); pEvalid->InputValue(0, 167, CComBSTR("TEXT"), CComBSTR(""), CComBSTR("q"), CComBSTR("batteries"), CComBSTR(""), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->Wait(3264); TraceEvalidLog(pEvalid); pEvalid->SubmitClick(0, 213, CComBSTR(""), CComBSTR("btnG"), CComBSTR("Google Search"), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->Wait(2734); TraceEvalidLog(pEvalid); pEvalid->IndexSet(0); TraceEvalidLog(pEvalid); pEvalid->IndexFindElement(0, CComBSTR("DOWN"), CComBSTR("innerText"), CComBSTR("Next"), NULL, NULL); TraceEvalidLog(pEvalid); pEvalid->IndexMove(+1); TraceEvalidLog(pEvalid); pEvalid->IndexFollowLink(0, CComBSTR("")); TraceEvalidLog(pEvalid); //pEvalid->IndexFollowLink( 0, CComBSTR( _T( "" ) ), VARIANT_BOOL("VARIANT_FALSE") ); //TraceEvalidLog(pEvalid); pEvalid->Wait(1722); TraceEvalidLog(pEvalid); pEvalid->ResetTimer(); TraceEvalidLog(pEvalid); pEvalid->GotoLink(0, CComBSTR("http://www.ritzcamera.com/"), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->Wait(3904); TraceEvalidLog(pEvalid); pEvalid->InputValue(0, 360, CComBSTR("TEXT"), CComBSTR("searchInput"), CComBSTR("keyword"), CComBSTR("batteries"), CComBSTR(""), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->Wait(2440); TraceEvalidLog(pEvalid); pEvalid->InputImageClick(0, 363, CComBSTR("http://a1672.g.akamai.net/7/1672/116/$_Year$_Month201/" \ "www.ritzcamera.com/graphics/navigation/09/search09.gif"), CComBSTR(""), CComBSTR(""), true); TraceEvalidLog(pEvalid); pEvalid->ElapsedTime(CComBSTR("Going to Ritz")); TraceEvalidLog(pEvalid); pEvalid->GotoLink(0, CComBSTR("http://www.google.com/"), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->SyncOnSelectedObjProperty(0, 166, CComBSTR("name"), CComBSTR("btnG"), CComBSTR("tagName"), CComBSTR("INPUT"), CComBSTR("")); TraceEvalidLog(pEvalid); long index; pEvalid->IndexSet(0); TraceEvalidLog(pEvalid); pEvalid->IndexFindElement(0, CComBSTR("DOWN"), CComBSTR("name"), CComBSTR("q"), CComBSTR(""), &index); TraceEvalidLog(pEvalid); pEvalid->IndexInputValue(0, CComBSTR("TEXT"), CComBSTR("apple"), CComBSTR(""), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->IndexFindElement(0, CComBSTR("DOWN"), CComBSTR("name"), CComBSTR("btnG"), CComBSTR(""), &index); TraceEvalidLog(pEvalid); pEvalid->IndexFollowLink(0, CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->ValidateSelectedText(0, 188, 0, CComBSTR("Apple Inc."), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->Wait(1552); TraceEvalidLog(pEvalid); pEvalid->ValidateSelectedObjProperty(0, 188, CComBSTR("readyState"), CComBSTR("complete"), CComBSTR("tagName"), CComBSTR("A"), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->GotoLinkSubmit(0, CComBSTR("http://search.yahoo.com/search?" \ "p=camera&fr=yfp-t-501&toggle=1&cop=mss&ei=UTF-8"), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->SyncOnElementProperty(0, CComBSTR("id"), CComBSTR("yschsp"), CComBSTR("")); TraceEvalidLog(pEvalid); pEvalid->SaveRecord(CComBSTR("tally.txt"), CComBSTR("%E\t%e\t%K\t%T\t%Z\tRitzCamera check for batteries"), true); TraceEvalidLog(pEvalid); pEvalid->ExitNow(); // ---------------------------------------------------------------------------- pEvalid->Release(); } else if (hr == E_ACCESSDENIED) cout << "Missing a valid EPI license key!" << endl; else cout << "Unable to load EPI!" << endl; ::CoUninitialize(); return 0; }