Python - ¿Cómo puedo aumentar el valor de una variable en una línea de comando?

CorePress2024-01-16  9

a = 1
for i in range(5):
    browser.find_element_by_xpath("/html/body/div[6]/div/div/div[2]/div/div/div[1]/div[3]/button").click()
    sleep(1)

Quiero aumentar el 1 en div[1] en 1+ en cada ciclo, pero ¿cómo puedo hacerlo?

Pensé que necesitaba agregar un valor, haga "+a+" y por último un "a = a + 1" para aumentar el valor cada vez, pero no funcionó.

a = 1
for i in range(5):
    browser.find_element_by_xpath("/html/body/div[6]/div/div/div[2]/div/div/div["+a+"]/div[3]/button").click()
    a = a + 1
    sleep(1)

1

Estoy bastante seguro de que a aumenta. ¿Cómo sabes que no es así?

- Yevhen Kuzmovych

19/03/2021 a las 20:01

¿Cuál es el mensaje de error que recibiste?

- Jelle

19/03/2021 a las 20:02

¿Por qué necesitas una variable independiente? para un dentro del rango(1, 6):

-Barmar

19/03/2021 a las 20:04

También puedes colocar todos los botones en una lista y recorrerla en bucle, en lugar de llamar a find_element_by._xpath() repetidamente.

-Barmar

19/03/2021 a las 20:05

No recibo ningún mensaje de error

- Samet

19/03/2021 a las 20:53



------------------------------------

for i in range(1,6):
    browser.find_element_by_xpath("/html/body/div[6]/div/div/div[2]/div/div/div["+str(i)+"]/div[3]/button").click()
    sleep(1)

no necesitas 2 variables, solo una variable i en el bucle, conviértela en cadena con str() y agrégala donde la necesites, bastante simple. el valor de i aumenta para vísperasPruebe la iteración del bucle que va del 1 al 5 haciendo exactamente lo que necesita.



------------------------------------

Alternativamente a la respuesta de Elyes, puedes usar la palabra clave 'global' en la parte superior de tu función y luego debería incrementarse 'correctamente'.



------------------------------------

Realmente no necesitas dos variables para esto a menos que vayas a usar la segunda variable para algo. Sin embargo, mire el siguiente código y lo hará.mostrarte que tanto i como a te darán el mismo resultado:

from time import sleep

a = 1
for i in range(1, 6):
    path = "/html/body/div[6]/div/div/div[2]/div/div/div[{idx}]/div[3]/button".format(idx=i)
    print(path, 'using i')
    path = "/html/body/div[6]/div/div/div[2]/div/div/div[{idx}]/div[3]/button".format(idx=a)
    a += 1
    print(path, 'using a')
    sleep(1)

Resultado:

/html/body/div[6]/div/div/div[2]/div/div/div[1]/div[3]/button using i
/html/body/div[6]/div/div/div[2]/div/div/div[1]/div[3]/button using a
/html/body/div[6]/div/div/div[2]/div/div/div[2]/div[3]/button using i
/html/body/div[6]/div/div/div[2]/div/div/div[2]/div[3]/button using a
/html/body/div[6]/div/div/div[2]/div/div/div[3]/div[3]/button using i
/html/body/div[6]/div/div/div[2]/div/div/div[3]/div[3]/button using a
/html/body/div[6]/div/div/div[2]/div/div/div[4]/div[3]/button using i
/html/body/div[6]/div/div/div[2]/div/div/div[4]/div[3]/button using a
/html/body/div[6]/div/div/div[2]/div/div/div[5]/div[3]/button using i
/html/body/div[6]/div/div/div[2]/div/div/div[5]/div[3]/button using a

Puedes leer más sobre el alcance aquí

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare