Riconoscimento dei campi di testo in base al loro valore di etichetta

1

Ho un'applicazione che ha campi di testo (non seleziona, non casella di controllo o altri tipi) in cui un utente può inserire qualche valore, come questo:

ISBNeE-Mailsonol'etichettadiciascuninput.

Oradevotestareautomaticamentequestiingressiinbaseallaloroetichetta.Ladomandaè:comericonoscereche,adesempio,ilprimoinputrichiedeuncodiceISBN?Hoprogrammatoqualcosadelgenere:

  1. trasformailvaloredell'etichettainminuscolo
  2. controllaseilvaloredell'etichettacontieneisbn
  3. seècosì,impostailvaloredelcamposuuncodiceISBNcasuale(ades.1234567890),altrimentiimpostalosuunvalorecasuale(predefinito)

Perilcampoemail:

  1. trasformailvaloredell'etichettainminuscolo
  2. controllaseilvaloredell'etichettacontienee-mailoemailomail
  3. seècosì,impostailvaloredelcamposuunaemailcasuale(es.:[email protected]),altrimentiimpostalosuunvalorecasuale(predefinito)

Ecosìviaperognicampoditestocheincontro.

Èaffidabile?Comepossomigliorarela"parte riconoscente"? Conosco solo il valore dell'etichetta e il valore del campo (ciò che è già scritto nel campo per impostazione predefinita) per ciascun input di testo.

    
posta HBv6 19.06.2012 - 17:16
fonte

2 risposte

3

Per quanto riguarda la correttezza della tua funzione, semplicemente non lo è. In realtà, non può essere.

Esempio di esempio banale: qualcuno crea l'etichetta "Non inserire l'e-mail o l'ISBN qui, ma il tuo nome:"

Il problema è che non dovresti dover indovinare quale campo di testo è per quale scopo, ma il campo di testo stesso dovrebbe contenere queste informazioni per vari motivi.

Ad esempio, se hai un campo di testo per i codici ISBN, non vuoi che venga premuto un tasto per un carattere non numerico (con la possibile eccezione dei caratteri - e X forse).

Il problema principale è come aggiungere queste informazioni semantiche ai campi di testo in modo tale che sia possibile accedervi nel framework di test. Ciò dipende ovviamente dagli strumenti di implementazione specifici utilizzati. Gli esempi includono:

  • HTML: assegna un attributo di classe / id / nome al tag di input (guarda f.ex. al codice sorgente della pagina di login di google), che è usato come base su come il tuo browser sa in quale campo di testo dovrebbe completare automaticamente il tuo indirizzo e-mail)
  • API GUI: se crei un'istanza di un widget TextField, puoi creare sottoclassi per diversi scopi semantici, come un campo EMailText, e creare un'istanza di questo. Riflettendo sul tipo dinamico dei campi di testo, i test possono determinare quale tipo di campo di testo è e, inoltre, l'implementazione può facilmente realizzare comportamenti semantici (come l'impossibilità di inserire determinati caratteri, ecc.)
risposta data 20.06.2012 - 08:07
fonte
0

Immagino che tu abbia fornito ai campi di testo nomi utili (diversi da textfield1 o simili)

NOTA: arrivo a questo dal punto di vista di winforms. Dal momento che non hai detto quale framework e / o linguaggio stai usando per sviluppare questo, assumerò che tu possa nominare i campi di testo. Ho anche notato che non hai detto quale framework stai usando per testare, quindi la maggior parte delle risposte sarà vaga e generica

Che ne dici di aggiungere solo nessun valore nei campi di testo?

Se fosse dove mi troverei, avrei chiamato i campi di testo tfISBN e tfEMail e avrei semplicemente inserito i valori noti direttamente nel loro valore di testo.

Ad esempio

tfISBN.text = "1157061346" //KnR C - ISBN10
tfEmail.text = "[email protected]"
//a different set of data
tfISNB.text = "978-0321751041" //Art of Computer Programming - ISBN13
tfEMail = "[email protected]"

Ovviamente, dal momento che stai provando, puoi anche controllare se è possibile popolare questi campi di testo con dati non validi. Basta spostare il modulo / interfaccia utente (simula i punti di tabulazione) e posizionare il testo in ogni campo e verificare se il codice back-end può gestire valori errati.

    
risposta data 19.06.2012 - 17:26
fonte

Leggi altre domande sui tag