Adott egy belső céges oldal, rajta egy webform, Smartsheet-ben lett elkészítve. Ezt nem akarom kézzel töltögetni, mert sok egyforma adatot kell bevinni, ezért automatizálnám. Viszont nem találok rajta fogást. Hiába néztem a form kódját, a HTML kód semmit nem mond, csak egy js-re hivatkozik, azt megnyitva meg egy sorba obfuszkált szar kód, nem látom át, nem értem mit csinál. A kódot csak holnap tudom csatolni, ma elfelejtettem kimenteni. Próbáltam a böngésző inspection funkcióját, de az se írja. Nekem csak a mezők neve/id-je kéne. Hogy lehetne megnézni?
Egyelőre AutoHotKey scripttel automatizálom a bevitelt, működik, de elég amatőr és lassúcska, jobb lenne, ha inkább közvetlenül ?név1=érték&név2=érték formában küldeném el a weben. Gondolom, hogy a form nem GET-et használ, mivel nem látom küldéskor, hogy elküldene URL-t, de elvileg az URL átmókolása működhet POST-os feldolgozás esetén is.
- 346 megtekintés
Hozzászólások
Nincs az inputnak id-je? Persze, ha js, akkor gondolom, az generálhat id-t, akármit. Szerintem a HTML Document Object Modelből JS-sel hozzá tudsz férni. Már, ha megértettem, de nem biztos. Ha automatizálsz, mi van a böngésző helyén? Egy wget vagy curl?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Azt még nem tudom, hogy curl vagy wget, valami ilyesmire gondoltam. Pont ez az, hogy nincs a HTML és JS kódban klasszik input tag-es mező, ami írná a name, id adatokat.
Ehhez a DOM-hoz JS-tel hogy férek hozzá, valami példát tudnál írni rá vagy linkelni?
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Csináltam műszerhez részleges webes felületet, de ott ugye én írom a szerver oldali php kódot is, és a kliens oldali html, css, js kódot is. Hirtelen ebben gondolkodtam, de itt a js-t nem te írod, azt a szervertől kapod. Tehát, ha jól értem, egy böngészőt akarsz emulálni, de ahhoz magadnál kell futtatni a szervertől kapott js-t is, meg ez egész DOM-ot emulálni kellene, gondolom, ellenkező esetben szerintem elhasal a szerver által küldött, kliensen futtatandó js. Vigasztalj meg, hogy nem egy fél délután akarsz megírni valamilyen scriptnyelven egy GUI nélküli böngészőt! :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
irj be teszt adatokat, es nezd meg a firefox webtools (f12) halozati fulen, hogy mit kuldott. ugyanabban a formaban te is el tudod kuldeni az adatot.
neked aztan fura humorod van...
- A hozzászóláshoz be kell jelentkezni
Ú, kösz, ez eszembe se jutott, hogy nem csak az inspector-ral, de a network részen is lehetne detektálni, hogy mit küld el a form. Kipróbálom holnap.
Szerk.: sajnos nem jött össze, a network részen se hozott a böngésző használhatót.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
bemasolod mi volt a request es a response?
neked aztan fura humorod van...
- A hozzászóláshoz be kell jelentkezni
Az elinks valahogy nem scriptelhető? Mindenesetre külső editor megadható neki az EDITOR környezeti változóval, ami ígéretes.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ez nem rossz tipp, ki fogom próbálni, de csak holnap tudom. Bár nem vagyok benne biztos, mert ez egy JS-alapú cucc, és az elinks, lynx nem kezel JS-et.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Akkor kifejtem: a js csak egy megjelenítő, a smartsheet egy szép SaaS szolgáltatás egészséges API hozzáféréssel, szóval minimum perverz böngészőn keresztül automatizálni
- A hozzászóláshoz be kell jelentkezni
Igen, pont ez az. Az adatokat bevihetném simán táblázatszerűen, tömeges beillesztésként Smartsheet-ben, de a főnök lezárt egyes oszlopokat, hogy közvetlenül nem lehet a táblázathoz semmit adni, csak a formon keresztül, ezt szerintem azért csinálta, hogy validálja a bekerülő adatokat.
Sajnos a Smartsheet API-t meg az új form létrehozását nem használhatom, mert nincs meg hozzá az admin jogom a Smartsheet felületén.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Próbáltam a böngésző inspection funkcióját, de az se írja
Pedig valamit ott elnéztél. Az lehet, hogy a konkrét oldal forrásában kb csak egy scriptként behivatkozott JS van (az meg nyilván minified, embernek olvashatatlan), de ha megjelenik a browserban, akkor bizony ott html lesz*, a DOMban látszani kell azoknak a mezőknek. Jobb click valami elemen, inspect, és ott lesz az.
?név1=érték&név2=érték
Az más kérdés, hogy szinte biztosan nem egy simán formként felpostolt cucc lesz jó eséllyel. A legtöbb ilyen keretrendszer valami AJAX hívást csinál hátul jsből, nem a főoldallal postol általában, szóval tényleg a legjobb azt nézni, hogy mit küld hátul a netwörkön.
Vagy hát, ha erről a smarsheetről van szó, akkor annak van apija, leírással: https://smartsheet.redoc.ly/#section/Introduction , meg van vagy 5 féle sdk hozzá.
* Jó, persze, lehetne valami webassembly, ami csak egy canvasra rajzolgat, de kétlem :)
- A hozzászóláshoz be kell jelentkezni
Nem, nem néztem be. De rájöttem az okára, ez nem form. Úgy néz ki, mintha form lenne, de ez egy teljesen JS-es mókolás, ide feltöltöttem 7-zip-pel csomagolva, mivel Windowson készült. A HTML-t nem mentettem el, mert abban tényleg nincs semmi, szokásos header, body, meg erre a JS-re hivatkozás, semmilyen értelmes tartalmi tag nincs benne, se input, se semmi más.
A Smartsheet terén nem a hozzáértésemmel van baj, mert elboldogulnék vele, hanem hogy nincs az adott táblázatokhoz admin jogom, így se az API-t nem tudom használni, se új formot létrehozni, se semmit. Admin joga csak a főnöknek van.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
Admin joga csak a főnöknek van.
Akkor csinálja ő! Ha akadályozza a munkádat, ne várja, hogy hatékonyan elvégezd. Amikor kávéscsészével a kezedben mész a folyosón, akkor meg elgáncsol?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ja, én is így vagyok vele, de mivel új vagyok, nem pofázhatok. Egyébként én értem, validálni akarja a bekerülő adatokat, és csak ezen a formon keresztül tudja megoldani. Gondolom korábban a sok normi balfék érvénytelen adatokat vitt be állandóan.
“The world runs on Excel spreadsheets.” (Dylan Beattie)
- A hozzászóláshoz be kell jelentkezni
De akkor lehet, hogy értő fülekre talál, hogy kell neked az API elérés, ahhoz meg admin jog.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni