-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtasks.robot
More file actions
185 lines (157 loc) · 7.69 KB
/
tasks.robot
File metadata and controls
185 lines (157 loc) · 7.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
*** Settings ***
Documentation Hakee dataa Vantaan Energia Sähköverkkojen sivustolta sekä sähkön SPOT-hinta tietoja ja näiden perusteella
... yrittää laskea kuluvan päivän ja huomisen hinnan sähkölaskulle.
Library RPA.Browser.Selenium
Library RPA.HTTP
Library OperatingSystem
Library KeePassLibrary
Variables credentials.py #Koska en ole vielä saanut KeePass ominaisuutta toimimaan, tiedot ladataan erillisestä muuttujatiedostosta nyt toistaiseksi.
Library scripts/lastSevenDays.py
Library Process
Library DateTime
Library RPA.Excel.Files
Library RPA.Tables
*** Variables ***
${pohja} ${CURDIR}//output//Robottipohja.xlsx
${hinnat} ${CURDIR}//output//data.xlsx
${hinnathuomenna} ${CURDIR}//output//data (1).xlsx
*** Tasks ***
Hae dataa sähkön kulutuksesta ja hinnasta
Avaa verkkoselain ja mene Vantaan Energia Sähköverkkojen sivuille
Kirjaudu sisään ja mene raportointi sivulle
Etsi ja lataa kulutusdata
Hae sähkön hinta
Liitä tiedot Exceliin
Korvaa pohjan hinnat
Korvaa huomiset hinnat
Korvaa pohjan kulutus
Hae tiedot
[Teardown] Sulje selain ja siivoa Output kansio
*** Keywords ***
Avaa verkkoselain ja mene Vantaan Energia Sähköverkkojen sivuille
Set Download Directory ${OUTPUT_DIR}
Open Chrome Browser https://online.vantaanenergiasahkoverkot.fi/eServices/Online/IndexNoAuth
Maximize Browser Window #Suurennetaan ikkuna, jotta kaikki elementit varmasti näykyvät botille.
Hae kirjautumistunnukset
#Tämä osuus ei jostain syystä toimi. Sitä pitää tutkia lisää myöhemmin.
Open Keepass Database Database.kdbx keyfile=Database.key
${entry}= Get Entries User Name first=True
${username}= Get Entry Username ${entry}
${password}= Get Entry Password ${entry}
Log Username is ${username}
Kirjaudu sisään ja mene raportointi sivulle
Input Text UserName ${username}
Input Password Password ${password}
Submit Form
Wait Until Page Contains Element id:fpGraphHeader3
Etsi ja lataa kulutusdata
Click Element id:fpGraphHeader3
${startDate}= Get Start Date
Input Text When Element Is Visible id:startDateSelector ${startDate}
${endDate}= Get End Date
Input Text When Element Is Visible id:endDateSelector ${endDate}
Click Button id:updateInterval
Sleep 2s #Pieni paussi, jotta tiedot ehtiävät päivittyä.
Click Button id:ExportToExcel
Hae sähkön hinta
Go To https://www.vattenfall.fi/sahkosopimukset/porssisahko/tuntispot-hinnat-sahkoporssissa/
Click Element When Visible id:cmpbntnotxt #Evästeet -_-
Sleep 1s
Run Keyword And Ignore Error Scroll Element Into View xpath:/html/body/main/section/main/div/div[1]/div/price-spot-fi/div[2]/div/div/div/button #Skrollataan valmiiksi latausnapin luokse.
Sleep 1s
Execute Javascript document.querySelector("#startDate").removeAttribute("readonly"); #Poistetaan readonly attribuutti, jotta voimme suoraan kirjoittaa päivämäärän.
#Haetaan tämän päivän data:
Sleep 1s
${currentDate}= Get Current Date exclude_millis=True
${startDate}= Convert Date ${currentDate} result_format=%d.%m.%Y
Input Text When Element Is Visible id:startDate ${startDate}
sleep 1s
Click Element When Visible id:periodSelector
Sleep 1s
Click Element xpath:/html/body/main/section/main/div/div[1]/div/price-spot-fi/div[1]/div/div/div[2]/div/div[2]/period-picker/div/form/div/ul/li[1]/a
Sleep 1s
Click Element xpath:/html/body/main/section/main/div/div[1]/div/price-spot-fi/div[2]/div/div/div/button
#Ja vielä huomisen data:
Run Keyword And Ignore Error Scroll Element Into View xpath:/html/body/main/section/main/div/div[1]/div/price-spot-fi/div[2]/div/div/div/button
#Pitää taas scrollata, koska Chromen latauspalkki saattaa estää elementin.
${currentDate}= Get Current Date exclude_millis=True
${tomorrow}= Add Time To Date ${currentDate} 1 days
${startDate}= Convert Date ${tomorrow} result_format=%d.%m.%Y
Input Text When Element Is Visible id:startDate ${startDate}
sleep 1s
Click Element xpath:/html/body/main/section/main/div/div[1]/div/price-spot-fi/div[2]/div/div/div/button
Sleep 2s
# Leevin osuus
Hae hintatiedot
[Arguments] ${workbook}
Open Workbook ${workbook}
${hintapohja}= Read Worksheet As Table WorkSheet
[Return] ${hintapohja}
Hae kulutustiedot
${kulutus}= Get Data Filename
${kulutustiedot}= Read table from CSV ${OUTPUT_DIR}/${kulutus} delimiters=;
[Return] ${kulutustiedot}
Korvaa pohjan hinnat
${hinnat}= Hae hintatiedot ${hinnat}
Open Workbook ${pohja}
Set Active Worksheet Hinnat
${index}= Set Variable 1
FOR ${RIVI} IN @{hinnat}
# Set running index
FOR ${SARAKE} IN @{RIVI}
Log ${SARAKE}
Set Cell Value ${index} ${SARAKE} ${RIVI}[${SARAKE}]
END
${index}= Evaluate ${index} + 1
END
Save Workbook ${pohja}
Korvaa huomiset hinnat
${hinnat}= Hae hintatiedot ${hinnathuomenna}
Open Workbook ${pohja}
Set Active Worksheet Hinnat huomenna
${index}= Set Variable 1
FOR ${RIVI} IN @{hinnat}
# Set running index
FOR ${SARAKE} IN @{RIVI}
Log ${SARAKE}
Set Cell Value ${index} ${SARAKE} ${RIVI}[${SARAKE}]
END
${index}= Evaluate ${index} + 1
END
Save Workbook ${pohja}
Korvaa pohjan kulutus
${kulutus}= Hae kulutustiedot
Open Workbook ${pohja}
Set Active Worksheet KulutusRaaka
${index}= Set Variable 2
${sarakeindex}= Set Variable 1
FOR ${RIVI} IN @{kulutus}
${sarakeindex}= Set Variable 1
FOR ${SARAKE} IN @{RIVI}
IF "${SARAKE}" == "Energia yhteensä (kWh)"
Set Cell Value ${index} ${sarakeindex} ${RIVI}[${SARAKE}] fmt="##.####"
ELSE
Set Cell Value ${index} ${sarakeindex} ${RIVI}[${SARAKE}]
END
${sarakeindex}= Evaluate ${sarakeindex} + 1
END
${index}= Evaluate ${index} + 1
END
Save Workbook ${pohja}
Hae tiedot
Open Workbook ${pohja}
${table}= Read Worksheet As Table Data
${kalleinhintatänään}= Get Cell Value 30 G
${kalleinhintahuomenna}= Get Cell Value 30 H
${kalleintuntitänään}= Get Cell Value 31 G
${kalleintuntihuomenna}= Get Cell Value 31 H
${halvinhintatänään} Get Cell Value 32 G
${halvinhintahuomenna} Get Cell Value 32 H
${halvintuntitänään} Get Cell Value 33 G
${halvintuntihuomenna} Get Cell Value 33 H
Log Tämän päivän kallein tunti on ${kalleintuntitänään} ja se maksaa ${kalleinhintatänään}. Huomenna kallein tunti on ${kalleintuntihuomenna} ja se maksaa ${kalleinhintahuomenna}.
Log Halvin tunti tänään on ${halvintuntitänään} ja se maksaa ${halvinhintatänään}. Huomenna halvin tunti on ${halvintuntihuomenna} ja se maksaa ${halvinhintahuomenna}.
Sulje selain ja siivoa Output Kansio
Close All Browsers
${kulutusData}= Get Data Filename
Remove Files ${hinnat} ${hinnathuomenna} ${OUTPUT_DIR}/${kulutusData}