es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reset de datos al cambiar de pestaña en Selenium.

Mientras intento usar los datos que obtengo de una pestaña en otra pestaña con Selenium, se reinician los datos cuando cambia la pestaña, por lo que no puedo usar los datos. ¿Cómo puedo evitar esto?

Mi código:

for link in linkler:
    driver.get(link)
    oyunAdi = driver.find_element_by_xpath("//h1[@itemprop='name']").text
    oyunFiyat = driver.find_element_by_xpath("//*[class='table-prices-current']//td[3]").text
    try:
        community = driver.find_element_by_xpath("//a[@id='tab-communityitems']").click()
        sleep(1)
        isimler = driver.find_elements_by_xpath("//div[@id='item-class-2']//div//div[@class='community-item']")
        devam = "a"
    except:
        devam = "b"
        driver.switch_to.window(driver.window_handles[0])
        a = 0
    if devam == "a":
        for isim in isimler:
            driver.switch_to.window(driver.window_handles[1])
            sleep(0.5)
            arama = driver.find_element_by_xpath("//input[@id='findItemsSearchBox']")
            arama.clear()
            arama.send_keys(oyunAdi, isim.text)
            sleep(3)
            esyaIsimler = driver.find_elements_by_xpath("//[class='market_listing_item_name']")
            fiyatlar = driver.find_elements_by_xpath("//[class='normal_price']")
            for x in range(0,len(esyaIsimler)):
                if esyaIsimler[x].text == isim:
                    print(oyunAdi, oyunFiyat, esyaIsimler[x].text, fiyatlar[x].text)
        driver.switch_to.window(driver.window_handles[0])

Por ejemplo, la salida del siguiente código es 10.

isimler = driver.find_elements_by_xpath("//div[@id='item-class-2']//div//div[@class='community-item']")
print(len(isimler))

pero este código da un error.

driver.switch_to.window(driver.window_handles[1])
print(len(isimler))

Quiero usar los datos de la variable isimler que obtuve de la pestaña anterior en la nueva pestaña.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para evitar que los datos se restablezcan al cambiar de pestaña, puedes almacenar los datos en una variable antes de cambiar a la nueva pestaña. Luego, después de cambiar a la nueva pestaña, puedes acceder a los datos almacenados desde la variable.

    Por ejemplo, puedes modificar el código de la siguiente manera:

    # almacenar los datos en una variable antes de cambiar a la nueva pestaña
    isimler = driver.find_elements_by_xpath("//div[@id='item-class-2']//div//div[@class='community-item']")
    isimler_count = len(isimler)
    
    # cambiar a la nueva pestaña
    driver.switch_to.window(driver.window_handles[1])
    
    # acceder a los datos almacenados desde la variable
    print(isimler_count)
    

    De esta manera, puedes utilizar los datos de la pestaña anterior en la nueva pestaña sin que se restablezcan.

Comments are closed.