Forum >> Principianti >> inserimento dato su una label

Pagina: 1

Ciao ho un html come questo...


<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn" aria-label="Customer Id:" aria-multiline="false" data-test="textbox" autocomplete="on" role="textbox" tabindex="0" type="text" value="">



dovrei individuare il selettore che mi permette di inserire un dato richiesto da input all'interno di Customer Id in modalità autocompilazione. Come dovrei fare? grazie







Confesso di non aver compreso bene il contesto della domanda, in particolare su cosa Tu stia operando e quanto Tu debba in realtà fare ... nel complesso mi sembra Tu voglia produrre un testo html partendo da una pagina esistente e manipolandola : ciò non sarebbe di per se difficile, per identificare gli elementi sarebbe già sufficiente l'utilizzo del metodo "find" della classe str, Ti faccio un esempio in una sessione IDLE, sia "html_text" uno stralcio di testo letto da un file html così fatto

Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
html_text ='''<h1>La filastrocca</h1>
<p>Apelle figlio di Apollo fece una palla di pelle di pollo</p>
<br>
<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn" aria-label="Ti Piace (Si/No)"
aria-multiline="false" data-test="textbox" autocomplete="on" role="textbox" tabindex="0" type="text" value="">
<br>
<br>
<h1>Chi sei?</h1>
<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn" aria-label="Customer Id:"
aria-multiline="false" data-test="textbox" autocomplete="on" role="textbox" tabindex="0" type="text" value="">'''
potremmo facilmente estrarci i singoli blocchi di input, p.e. così:

start = 0
end = 0
starter = '<input'
ender = '>'
pos = html_text.find(starter, start)
if pos >= 0: start = pos

start
93
pos = html_text.find(ender, start)
if pos > start:
    end=pos
    phrase = html_text[start:end+1]
    print(phrase)

    
<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn" aria-label="Ti Piace (Si/No)"
aria-multiline="false" data-test="textbox" autocomplete="on" role="textbox" tabindex="0" type="text" value="">

Naturalmente, non è detto che il primo blocco di input estratto sia quello che ci interessa, dovremmo, quindi, individuare una discriminante univoca che ci permetta di ciclare tra i vari blocchi di input presenti sino a trovare quello "giusto", supponiamo che tale discriminante sia una stringa "Cutomer Id:" presente solo e soltanto nel solo blocco che ci interessa, potremmo scriverci una funzione generica che possa individuare un tale blocco di input e vada a manipolarne il "value" sostituendo un eventuale valore presente con uno a nostra scelta, p.e. così:

================================ RESTART: Shell ================================
def insert_to_value(starter, ender, identifier, text, ins_text):
    pivot = 'value="'
    start = 0
    end = 0
    new_step = True
    while new_step:
        pos = text.find(starter, start)
        if pos == -1:
            return
        start = pos
        pos = text.find(ender, start)
        if pos == -1 or pos <= start:
            return
        end = pos
        phrase = text[start: end + 1]
        if identifier in phrase:
            pos = text.find(pivot, start)
            if pos == -1:
                return
            pos += len(pivot) - 1
            part1 = text[:pos+1]
            pos = text.find('"', pos)
            part2 = text[pos:]
            result = part1 + ins_text + part2
            return result
        if end >= len(text) - 1:
            new_step = False
        else:
            start = end + 1

html_text ='''<h1>La filastrocca</h1>
<p>Apelle figlio di Apollo fece una palla di pelle di pollo</p>
<br>
<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn"
aria-label="Ti Piace (Si/No)" aria-multiline="false" data-test="textbox" autocomplete="on"
role="textbox" tabindex="0" type="text" value="">
<br>
<br>
<h1>Chi sei?</h1>
<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn" aria-label="Customer Id:"
aria-multiline="false" data-test="textbox" autocomplete="on" role="textbox" tabindex="0" type="text" value="">'''

insert_to_value('<input', '>', 'Customer Id:', html_text, 'nuzzopippo')
'<h1>La filastrocca</h1>\n<p>Apelle figlio di Apollo fece una palla di pelle di pollo</p>\n<br>\n
<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn" aria-label="Ti Piace (Si/No)"
 aria-multiline="false" data-test="textbox" autocomplete="on" role="textbox" tabindex="0" type="text" value="">\n
<br>\n<br>\n<h1>Chi sei?</h1>\n
<input class="TextStyles StyledInputInput-sc-148yeee-1 ioLPsn" aria-label="Customer Id:"
 aria-multiline="false" data-test="textbox" autocomplete="on" role="textbox" tabindex="0"
 type="text" value="nuzzopippo"">'
Ho manipolato un po' l'output di "insert_to_value" per non allungare eccessivamente le righe.




Spero sia ciò che Ti serve, fai sapere, Ciao

Fatti non foste a viver come bruti...


Pagina: 1



Esegui il login per scrivere una risposta.