Come controllare a livello di programmazione un'applicazione GUI?

6

Ho un paio di utenti che hanno un'interfaccia utente per un'applicazione che devono utilizzare per svolgere il proprio lavoro. L'interfaccia utente può essere ingombrante per navigare per eseguire alcune attività critiche.

Questa interfaccia utente non espone alcuna API e non ha punti di integrazione.

Vorrei poter fare qualcosa per aiutare gli utenti a svolgere varie attività.

Ho esaminato la possibilità di utilizzare i test dell'interfaccia utente codificati di VS2013 per permettermi di controllare l'interfaccia utente da parte di un mio codice che sarebbe eseguito sui PC degli utenti. Ovviamente questo non è proprio ciò a cui sono destinati i test codificati dell'interfaccia utente.

Qualcun altro ha provato questa tecnica per integrare il codice con un'interfaccia utente chiusa? Quanto successo eri? Sei a conoscenza di altri quadri che otterrebbero lo stesso risultato?

In qualche altro dettaglio (non è richiesta la lettura per la domanda): L'interfaccia utente in questione è uno strumento di market making all'interno della finanza. Per ragioni di semplicità, diciamo che l'uso di esso è rafforzato dalla regolamentazione. Attualmente gli utenti eseguiranno un modello e quindi digiteranno manualmente diversi valori nell'interfaccia utente come offerte e offerte. Questa operazione richiede molto tempo e presenta un potenziale errore umano (anche con copia e incolla). Vorrei creare un'app che prendesse i valori corretti dal modello e li abbia inseriti nelle caselle corrette sullo schermo.

Cose che posso controllare:

  • L'applicazione prendono i valori da
  • Il software di integrazione

Cose che non posso controllare:

  • Qualsiasi cosa abbia a che fare con l'interfaccia utente di market making

Qualche suggerimento o consiglio molto apprezzato.

    
posta GinjaNinja 27.04.2016 - 15:59
fonte

3 risposte

1

Probabilmente puoi farlo funzionare. Ma, trovo che quando utilizzi l'interfaccia utente codificata o altri framework di test, sei abbastanza dipendente dalla modifica del codice per rendere i vari pulsanti e altri elementi facili da individuare e da interagire.

Penso che troverai più facile acquistare un prodotto di automazione a scaffale

    
risposta data 27.04.2016 - 21:27
fonte
1

Hai esaminato Spock e selenio? Spock può caricare pagine e il selenio può manipolare elementi dell'interfaccia utente. Questo può essere impostato per scopi diversi dal testing e dovrebbe essere eseguito correttamente. Attenzione, le cose possono diventare complicate se hai elementi dell'interfaccia utente che devono essere attivati, quindi devi aspettare che qualcosa venga caricato, e quindi puoi procedere. Alcuni codici creativi potrebbero rendersi necessari quando si tratta di dirgli di aspettare il tempo richiesto.

Il selenio non è generalmente amato dalla maggior parte delle persone che devono usarlo molto, ma funziona. Dovrebbe essere possibile impostare uno script da eseguire e una sequenza di azioni nell'interfaccia utente.

    
risposta data 10.03.2017 - 18:50
fonte
-1

How to programmatically control a GUI application?

Suppongo che tu abbia scritto, o almeno possa modificare quell'applicazione della GUI, così avere accesso (e comprensione) al suo codice sorgente (e alla capacità e alle risorse per migliorarlo).

Quindi potresti aggiungere del servizio RPC -like a quella applicazione. Potresti prendere in considerazione l'aggiunta di alcuni JSONRPC , alcuni REST o altro servizio Web , alcuni SOAP , etc ...

L'aggiunta di tale servizio a un'applicazione GUI esistente è generalmente facile (poiché i framework della GUI hanno qualche ciclo di eventi ).

Se non hai alcun controllo (e nessun accesso al suo codice sorgente) sull'applicazione della GUI, in generale non puoi controllare l'applicazione della GUI a livello di codice . Ma a seconda del server di visualizzazione ( X11 , Wayland , ecc ...), il sistema operativo e il widget toolkit utilizzati da esso, in alcuni specifici e casi rari potresti controllarlo a livello di codice (ad esempio, alcuni recenti GTK applicazioni che utilizzano Gobject introspection ).

Forse la soluzione migliore è tornare al fornitore di quella applicazione GUI e chiedergli (e pagarlo) di sviluppare qualche interfaccia programmatica (e discutere con lui i dettagli tecnici, ad esempio il comunicazione inter-processo protocollo da utilizzare).

Se conosci l'origine dei dati ("L'applicazione che prendono i valori da") e il calcolo che sta facendo questa GUI, potresti prendere in considerazione la possibilità di riprogettare il tuo codice facendo quel calcolo (Solo tu potresti sapere se questo ha senso ).

Leggi anche Confronto degli strumenti di test della GUI e Test della GUI wikipages.

    
risposta data 05.04.2018 - 22:29
fonte

Leggi altre domande sui tag