Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var genie = require('genie').create({ xpathVersion: '2.0' });
- var x = require('casper').selectXPath;
- var ex = genie.extendedXpath(x);
- var blacklist = ['.css', '.png', '.gif', '.jpeg', 'google-analytics', 'yandex'];
- var files = genie.files();
- //** Credentials **//
- var username = "adobreva@ceicdata.com";
- var password = "ceic12345";
- /** Get current year **/
- var now = new Date();
- var currentYear = now.getFullYear();
- var prevYear = now.getFullYear() - 1;
- var yearButtons = "";
- files.blacklist(blacklist)
- .retry(5)
- .add({
- // "file1.xls": {
- // "selectorFilename" : "//a[contains(text(),'UK-J01_Macro Rows 4-203')]"
- // }
- //// },
- "file2.xls": {
- "selectorFilename" : "//a[contains(text(),'UK-J01_Macro Rows 205-2097')]"
- }
- })
- // .add("file1.xls")
- .steps(function (parameters) {
- /** Log In **/
- this.thenOpen("https://www.uktradeinfo.com/Statistics/BuildYourOwnTables/Pages/MyReportsLogin.aspx");
- this.then(function(){
- var logInButton = this.getElementAttribute(x("//input[contains(@value,'Log in')]"), "onclick");
- if (logInButton) {
- this.evaluate(function(username, password){
- $(document).xpath("//input[contains(@id,'txtUserName')]").val(username);
- $(document).xpath("//input[contains(@id,'txtPassword')]").val(password);
- }, username, password)
- this.waitAndClick(ex("//input[contains(@value,'Log in')]"));
- } else {
- console.log("ALREADY LOGGED IN");
- }
- });
- /** Main Url **/
- this.thenOpen("https://www.uktradeinfo.com/Statistics/BuildYourOwnTables/Pages/MyReports.aspx");
- /** Xpath navigation to the main report **/
- this.waitAndClick(ex(parameters.selectorFilename));
- // this.thenEvaluate(function() {
- // console.log("aspxMIClick(event, 'ctl00_ctl31_g_f8e2e96a_9b04_4c97_97de_7290d78ab387_ctl00_StatNavASPxPivotGrid_FVM', '2')");
- // });
- // this.wait(60000);
- // this.thenEvaluate(function() {
- // $('#ctl00_ctl31_g_f8e2e96a_9b04_4c97_97de_7290d78ab387_ctl00_StatNavASPxPivotGrid_FVM').css('visibility','visible');
- // });
- // this.waitAndClick(ex("//span[contains(.,'Expand All')]/ancestor::tr[contains(@onclick,'event')]"));
- // this.wait(60000);
- // this.then(function() {
- // var expandFunc = this.getElementAttribute(ex("//span[contains(.,'Expand All')]/ancestor::tr[contains(@onclick,'event')]", "onclick"));
- //// var expandFunc = "ctl00_ctl31_g_f8e2e96a_9b04_4c97_97de_7290d78ab387_ctl00_StatNavASPxPivotGrid_FVM";
- // console.log("LOGS : " + expandFunc);
- // this.evaluate(function(expandFunc) {
- // console.log("LOGS ...... : " + expandFunc);
- // $(document).xpath("//span[contains(.,'Expand All')]/ancestor::tr[contains(@onclick,'event')]").click().change();
- //// $(document).xpath('//tr[contains(@onclick,"' + expandFunc + '")]').click().change();
- // }, expandFunc)
- // this.wait(45000);
- // this.capture("downloads/sample.jpg");
- // });
- //tr[contains(@onclick,"aspxMIClick(event, 'ctl00_ctl31_g_f8e2e96a_9b04_4c97_97de_7290d78ab387_ctl00_StatNavASPxPivotGrid_FVM', '2')")]
- // this.thenEvaluate(function(){
- // event, 'ctl00_ctl31_g_f8e2e96a_9b04_4c97_97de_7290d78ab387_ctl00_StatNavASPxPivotGrid_FVM', '2'
- // })
- // this.waitAndClick(ex("//tr[contains(@id,'ctl00_ctl31_g_f8e2e96a_9b04_4c97_97de_7290d78ab387_ctl00_StatNavASPxPivotGrid_FVM_DXI2_')]"));
- // this.wait(60000);
- // this.capture("downloads/sample.jpg");
- // this.waitForSelector(ex("//select[contains(@name,'ExportType')]"), function success(){
- // console.log("EXPANDED!!");
- // }, function fail() {
- // console.log("FAILED to EXPAND!!");
- // }, 200000);
- // /** Select Excel as file extension then Export the table **/
- // var optionExcel = this.getElementAttribute(ex("//option[contains(text(),'Excel')]"), "value");
- // var exportButton = this.getElementAttribute(ex("//a[ends-with(@id,'Export')]"), "href");
- // exportButton = exportButton.replace(/javascript:/g,'');
- // this.evaluate(function(optionExcel, exportButton) {
- // console.log(exportButton);
- // console.log(optionExcel);
- // $(document).xpath("//select[contains(@id,'ExportType')]").val(optionExcel).change();
- // $(document).xpath("//a[ends-with(@id,'Export')]").attr("href", exportButton).click();
- // }, optionExcel, exportButton);
- // this.waitAndClick(ex("//a[contains(text(),'UK-J01_Macro Rows 205-2097')]"));
- this.then(function(){
- /** Get all year buttons **/
- var currentYearButtons = this.getElementsAttribute(x("//td[contains(text(),'" + currentYear + "')]/img"), "onclick");
- var prevYearButtons = this.getElementsAttribute(x("//td[contains(text(),'" + prevYear + "')]/img"), "onclick");
- /** Check if Current year data is available or not **/
- if (currentYearButtons) {
- yearButtons = currentYearButtons;
- year = currentYear;
- } else {
- yearButtons = prevYearButtons;
- year = prevYear;
- }
- /** Click to expand all valid year buttons **/
- yearButtons = yearButtons.reverse();
- this.eachThen(yearButtons, function eachDo(entry) {
- var yearButtonFunction = entry.data;
- this.evaluate(function(yearButtonFunction) {
- $(document).xpath('//img[contains(@onclick,"' + yearButtonFunction + '")]').click().change();
- }, yearButtonFunction);
- this.wait(60000);
- this.capture("downloads/" + yearButtonFunction + ".jpg");
- });
- });
- /** Download/Export Button**/
- this.thenOpen("https://www.uktradeinfo.com/Statistics/BuildYourOwnTables/Pages/Table.aspx?action=export&type=XLS");
- this.wait(5000);
- });
- genie.run(files);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement