Veriyi alamıyorum - Selenium

Sıkıntının sebebi çeviri sonucunun javascript ile dinamik olarak oluşturulması. Siz daha çeviri
sonucunu içeren element oluşturulmadan o elemeti bulmaya çalıştığınız için hata alıyorsunuz. Bu kod gerekli element gelene kadar bekliyor:

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time as tm

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

askWhich = input("İngilizce-Türkçe mi ? (E/H) \t")

kelimeSayisi = input("Çevirmek istediğin kelimelerin sayısı birden fazla mı (E/H) \t")

askWhat = input("Çevirmek istediğiniz kelimeyi girin \t")

driver = webdriver.Chrome()

tr_to_en_url = "https://translate.google.com/?hl=tr#view=home&op=translate&sl=tr&tl=en"
en_to_tr_url = "https://translate.google.com/?hl=tr#view=home&op=translate&sl=en&tl=tr"


driver.maximize_window()

# İngilizceden Türkçeye
if askWhich=="E" or askWhich=="e":
    # Kelime sayısı 1 tane olanlar
    if kelimeSayisi == "H" or kelimeSayisi=="h":
        driver.get(en_to_tr_url)

        
##        degistir = driver.find_element_by_xpath("/html/body/div[2]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[3]")

##        degistir.click()

        

        yaziYazma = driver.find_element_by_css_selector("#source")

        yaziYazma.send_keys(askWhat)

        try:
            sonuc_parent = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".tlid-translation.translation")))
        except:
            print("Bağlantı sağlanamadı.")
        
        sonuc = sonuc_parent.find_element_by_tag_name("span")
        print(sonuc.text)

    # Kelime sayısı birden fazla olanlar

    elif kelimeSayisi=="E" or kelimeSayisi =="e":

        pass

    

    # Yanlış Değerler

    else:

        print("Yanlış değer girdiniz")

driver.close()
driver.quit()

Bir de çeviri için selenium kullanmak yavaş bir yöntem. Bu konudaki kütüphanelere göz atın:

1 Beğeni