I made a test macro.
You must have an account on this website : Log in
It can be created for free.
EDIT : after checking, the account can be created but you probably will not be able to have everyting you need to run the test case.
Let me know if you need anything else
1 - Log in
2 - Start the test case
The execution is going to slow down on each iteration when filling the “Signe distinctif text box” (step 33) until it looses the baground heartbeat on the type command after managing to write the text.
Happend for me on execution number 38
{
"Name": "TestMacroTrace",
"CreationDate": "2022-9-5",
"Commands": [
{
"Command": "store",
"Target": "nodisplay",
"Value": "!replayspeed",
"Description": ""
},
{
"Command": "store",
"Target": "10",
"Value": "!timeout_wait",
"Description": ""
},
{
"Command": "open",
"Target": "https://webgate.ec.europa.eu/tracesnt/certificate/phyto/search",
"Value": "",
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"content\"]/section/div/div/div[2]/button",
"Value": "",
"Targets": [
"xpath=//*[@id=\"content\"]/section/div/div/div[2]/button",
"xpath=//div/div/div[2]/button",
"css=#content > section > div.topBar.affix-top > div.pull-right > div:nth-child(2) > button"
],
"Description": ""
},
{
"Command": "clickAndWait",
"Target": "linkText=Nouveau certificat",
"Value": "",
"Targets": [
"linkText=Nouveau certificat",
"xpath=//*[@id=\"content\"]/section/div/div/div[2]/ul/li/a",
"xpath=//div/div/div[2]/ul/li/a",
"css=#content > section > div.topBar.affix-top > div.pull-right > div.btn-group.open > ul > li:nth-child(1) > a"
],
"Description": ""
},
{
"Command": "comment",
"Target": "Select EPPO code",
"Value": "",
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/div/span/i",
"Value": "",
"Targets": [
"xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/div/span/i",
"xpath=//li[6]/classification-tree-node/div/div/span/i",
"css=#classificationNodes > li:nth-child(6) > classification-tree-node > div > div > span > i.glyphicon.glyphicon-plus.text-muted"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/div/span/i",
"Value": "",
"Targets": [
"xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/div/span/i",
"xpath=//classification-tree-node/div/ul/li/classification-tree-node/div/div/span/i",
"css=#classificationNodes > li:nth-child(6) > classification-tree-node > div > ul > li:nth-child(1) > classification-tree-node > div > div > span > i.glyphicon.glyphicon-plus.text-muted"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/ul/li[2]/classification-tree-node/div/div/span/i",
"Value": "",
"Targets": [
"xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/ul/li[2]/classification-tree-node/div/div/span/i",
"xpath=//classification-tree-node/div/ul/li[2]/classification-tree-node/div/div/span/i",
"css=#classificationNodes > li:nth-child(6) > classification-tree-node > div > ul > li:nth-child(1) > classification-tree-node > div > ul > li:nth-child(2) > classification-tree-node > div > div > span > i.glyphicon.glyphicon-plus.text-muted"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/ul/li[2]/classification-tree-node/div/ul/li[2]/classification-tree-node/div/div/span/i",
"Value": "",
"Targets": [
"xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/ul/li[2]/classification-tree-node/div/ul/li[2]/classification-tree-node/div/div/span/i",
"xpath=//li[2]/classification-tree-node/div/ul/li[2]/classification-tree-node/div/div/span/i",
"css=#classificationNodes > li:nth-child(6) > classification-tree-node > div > ul > li:nth-child(1) > classification-tree-node > div > ul > li:nth-child(2) > classification-tree-node > div > ul > li:nth-child(2) > classification-tree-node > div > div > span > i.glyphicon.glyphicon-plus.text-muted"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/ul/li[2]/classification-tree-node/div/ul/li[2]/classification-tree-node/div/ul/li/classification-tree-node/div/div/div/button/i",
"Value": "",
"Targets": [
"xpath=//*[@id=\"classificationNodes\"]/li[6]/classification-tree-node/div/ul/li/classification-tree-node/div/ul/li[2]/classification-tree-node/div/ul/li[2]/classification-tree-node/div/ul/li/classification-tree-node/div/div/div/button/i",
"xpath=//li[2]/classification-tree-node/div/ul/li[2]/classification-tree-node/div/ul/li/classification-tree-node/div/div/div/button/i",
"css=#classificationNodes > li:nth-child(6) > classification-tree-node > div > ul > li:nth-child(1) > classification-tree-node > div > ul > li:nth-child(2) > classification-tree-node > div > ul > li:nth-child(2) > classification-tree-node > div > ul > li > classification-tree-node > div > div > div.actions > button > i"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=/html/body/div[5]/div/div/div[3]/div/div[2]/button",
"Value": "",
"Targets": [
"xpath=/html/body/div[5]/div/div/div[3]/div/div[2]/button",
"xpath=//div[3]/div/div[2]/button",
"css=body > div.modal.classificationNodeSelectionService.top.am-fade > div > div > div.modal-footer > div > div.col-md-3 > button"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div/div[2]/div/div/div/button/span[2]",
"Value": "",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div/div[2]/div/div/div/button/span[2]",
"xpath=//div/div/div/button/span[2]",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-pristine.ng-invalid.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-invalid-required.ng-valid-pattern > div > div.form-horizontal > div:nth-child(2) > div > div > div > button:nth-child(1) > span:nth-child(2)"
],
"Description": ""
},
{
"Command": "comment",
"Target": "Counters to loop on multiple articles",
"Value": "",
"Description": ""
},
{
"Command": "store",
"Target": "1",
"Value": "cpt",
"Description": ""
},
{
"Command": "store",
"Target": "2",
"Value": "uidCpt",
"Description": ""
},
{
"Command": "store",
"Target": "",
"Value": "articleCpt",
"Description": ""
},
{
"Command": "while_v2",
"Target": "${cpt} < 100",
"Value": "",
"Description": ""
},
{
"Command": "comment",
"Target": "Filling article informations",
"Value": "",
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[2]/div/div/descriptor-column/ng-include/descriptor-column-taxon-selector/div/ul",
"Value": "",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li[2]/div/div[3]/div/div[2]/div/div/descriptor-column/ng-include/descriptor-column-taxon-selector/div/ul",
"xpath=//li[2]/div/div[3]/div/div[2]/div/div/descriptor-column/ng-include/descriptor-column-taxon-selector/div/ul",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-valid-pattern.ng-valid-parse.ng-dirty.ng-valid-float.ng-valid.ng-valid-required > div > div.descriptorRowForms > ul > li:nth-child(2) > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.TAXON_ID > div > div > descriptor-column > ng-include > descriptor-column-taxon-selector > div > ul"
],
"Description": ""
},
{
"Command": "click",
"Target": "id=uid-${uidCpt}-search",
"Value": "",
"Description": ""
},
{
"Command": "type",
"Target": "id=uid-${uidCpt}-search",
"Value": "e",
"Description": ""
},
{
"Command": "waitForElementVisible",
"Target": "xpath=//*[@id=\"uid-${uidCpt}-search\"]/ancestor::div/ul/li/a/span",
"Value": "",
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"uid-${uidCpt}-search\"]/ancestor::div/ul/li/a/span",
"Value": "",
"Targets": [
"xpath=//*[@id=\"typeahead-4747-6422-option-0\"]/a/span",
"xpath=//descriptor-column-taxon-selector/div/div/div/ul/li/a/span",
"css=#typeahead-4747-6422-option-0 > a > span.label.label-success"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[4]/div/div/descriptor-column/ng-include/descriptor-column-quantity/div/div/input",
"Value": "",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[4]/div/div/descriptor-column/ng-include/descriptor-column-quantity/div/div/input",
"xpath=//input[@type='number']",
"xpath=//descriptor-column-quantity/div/div/input",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-pristine.ng-invalid.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-invalid-required.ng-valid-pattern.ng-valid-parse > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.NET_WEIGHT > div > div > descriptor-column > ng-include > descriptor-column-quantity > div > div > input"
],
"Description": ""
},
{
"Command": "type",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[4]/div/div/descriptor-column/ng-include/descriptor-column-quantity/div/div/input",
"Value": "12",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[4]/div/div/descriptor-column/ng-include/descriptor-column-quantity/div/div/input",
"xpath=//input[@type='number']",
"xpath=//descriptor-column-quantity/div/div/input",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-pristine.ng-invalid.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-invalid-required.ng-valid-pattern.ng-valid-parse > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.NET_WEIGHT > div > div > descriptor-column > ng-include > descriptor-column-quantity > div > div > input"
],
"Description": ""
},
{
"Command": "type",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[5]/div/div/descriptor-column/ng-include/descriptor-column-quantity/div/div/input",
"Value": "30",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[5]/div/div/descriptor-column/ng-include/descriptor-column-quantity/div/div/input",
"xpath=//div[5]/div/div/descriptor-column/ng-include/descriptor-column-quantity/div/div/input",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-invalid.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-invalid-required.ng-valid-pattern.ng-valid-parse.ng-dirty.ng-valid-float > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.PACKAGE_COUNT > div > div > descriptor-column > ng-include > descriptor-column-quantity > div > div > input"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[6]/div/div/descriptor-column/ng-include/descriptor-column-legislation-country-selector/div/div/select",
"Value": "",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[6]/div/div/descriptor-column/ng-include/descriptor-column-legislation-country-selector/div/div/select",
"xpath=//descriptor-column-legislation-country-selector/div/div/select",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-invalid.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-invalid-required.ng-valid-pattern.ng-valid-parse.ng-dirty.ng-valid-float > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.COUNTRY_OF_ORIGIN > div > div > descriptor-column > ng-include > descriptor-column-legislation-country-selector > div > div > select"
],
"Description": ""
},
{
"Command": "select",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[6]/div/div/descriptor-column/ng-include/descriptor-column-legislation-country-selector/div/div/select",
"Value": "label=Afrique du Sud",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[6]/div/div/descriptor-column/ng-include/descriptor-column-legislation-country-selector/div/div/select",
"xpath=//descriptor-column-legislation-country-selector/div/div/select",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-invalid.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-invalid-required.ng-valid-pattern.ng-valid-parse.ng-dirty.ng-valid-float > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.COUNTRY_OF_ORIGIN > div > div > descriptor-column > ng-include > descriptor-column-legislation-country-selector > div > div > select"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[6]/div/div/descriptor-column/ng-include/descriptor-column-legislation-country-selector/div/div/select/option[3]",
"Value": "",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[6]/div/div/descriptor-column/ng-include/descriptor-column-legislation-country-selector/div/div/select/option[3]",
"xpath=//option[@value='object:706']",
"xpath=//descriptor-column-legislation-country-selector/div/div/select/option[3]",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-valid-pattern.ng-valid-parse.ng-dirty.ng-valid-float.ng-valid.ng-valid-required > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.COUNTRY_OF_ORIGIN > div > div > descriptor-column > ng-include > descriptor-column-legislation-country-selector > div > div > select > option:nth-child(3)"
],
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[12]/div/div/descriptor-column/ng-include/descriptor-column-string/div/div/input",
"Value": "",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[12]/div/div/descriptor-column/ng-include/descriptor-column-string/div/div/input",
"xpath=//descriptor-column-string/div/div/input",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-valid-pattern.ng-valid-parse.ng-dirty.ng-valid-float.ng-valid.ng-valid-required > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.DISTINGUISH_MARK > div > div > descriptor-column > ng-include > descriptor-column-string > div > div > input"
],
"Description": ""
},
{
"Command": "comment",
"Target": "This is where the bug occurs, the type command repeats itself \"Web page connection issue. Retrying last command.\"",
"Value": "",
"Description": ""
},
{
"Command": "type",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li${articleCpt}/div/div[3]/div/div[12]/div/div/descriptor-column/ng-include/descriptor-column-string/div/div/input",
"Value": "12548896 - EXPORT POUR LES PETITS CANARDS BIEN DODUS",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form[2]/div/div[2]/ul/li/div/div[3]/div/div[12]/div/div/descriptor-column/ng-include/descriptor-column-string/div/div/input",
"xpath=//descriptor-column-string/div/div/input",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-valid-phyto-edit-consignment-identification-required.ng-valid-editable.ng-valid-min.ng-valid-max.ng-valid-pattern.ng-valid-parse.ng-dirty.ng-valid-float.ng-valid.ng-valid-required > div > div.descriptorRowForms > ul > li > div > div.descriptorRowColumnsContainer > div > div.col-md-2.descriptorColumn.DISTINGUISH_MARK > div > div > descriptor-column > ng-include > descriptor-column-string > div > div > input"
],
"Description": ""
},
{
"Command": "comment",
"Target": "BUG",
"Value": "",
"Description": ""
},
{
"Command": "comment",
"Target": "Counters update for the next loop",
"Value": "",
"Description": ""
},
{
"Command": "executeScript_Sandbox",
"Target": "return Number(${cpt}) +1;",
"Value": "cpt",
"Description": ""
},
{
"Command": "executeScript_Sandbox",
"Target": "return Number(${uidCpt}) +3;",
"Value": "uidCpt",
"Description": ""
},
{
"Command": "executeScript_Sandbox",
"Target": "return \"[\" + ${cpt} + \"]\";",
"Value": "articleCpt",
"Description": ""
},
{
"Command": "click",
"Target": "xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form/div/div/div/div[2]/div/div/button",
"Value": "",
"Targets": [
"xpath=//*[@id=\"commoditiesBox\"]/div[2]/div[2]/section/ng-form/div/div/div/div[2]/div/div/button",
"xpath=//ng-form/div/div/div/div[2]/div/div/button",
"css=#commoditiesBox > div.panel-body > div:nth-child(2) > section > ng-form.ng-pristine.ng-valid.ng-valid-phyto-edit-consignment-commodities-required > div > div > div > div.col-md-5 > div.pull-right > div > button:nth-child(1)"
],
"Description": "Add article"
},
{
"Command": "end",
"Target": "",
"Value": "",
"Description": ""
}
]
}