Çözüldü Python Selenium while döngüsündeki hata nedir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

noly12

Femtopat
Katılım
3 Ocak 2023
Mesajlar
11
Daha fazla  
Cinsiyet
Erkek
Python:
giris_yap = driver.find_element(By.CSS_SELECTOR,'[class="css-18t94o4 css-1dbjc4n r-sdzlij r-1phboty r-rs99b7 r-19yznuf r-64el8z r-1ny4l3l r-1dye5f7 r-o7ynqc r-6416eg r-lrvibr"]')
giris_yap.click()
time.sleep(7)
post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')
tweet_btn = driver.find_element(By.CSS_SELECTOR,'[class="css-18t94o4 css-1dbjc4n r-l5o3uw r-42olwf r-sdzlij r-1phboty r-rs99b7 r-19u6a5r r-2yi16 r-1qi8awa r-1ny4l3l r-ymttw5 r-o7ynqc r-6416eg r-lrvibr"]')
x =1
while x<100:
    post.send_keys(x)
    x+=1

driver.quit()

Merhaba arkadaşlar. While döngüsü olmadan kodu denedim. Çalışıyor tweeti atıyor. Fakat while ekleyince, while kadar gelip program sonlanıyor. Hata veriyor.
Bunu nasıl çözebilirim
 
Çözüm
Yineleme eklemediğiniz için olabilir, şu kodu deneyin.

Kod:
while x < 100:
    try:
        post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')
        post.send_keys(x)
        x += 1
    except:
        time.sleep(7)

driver.quit()
Yineleme eklemediğiniz için olabilir, şu kodu deneyin.

Kod:
while x < 100:
    try:
        post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')
        post.send_keys(x)
        x += 1
    except:
        time.sleep(7)

driver.quit()
 
Çözüm
Yineleme eklemediğiniz için olabilir, şu kodu deneyin.

Kod:
while x < 100:
 try:
 post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')
 post.send_keys(x)
 x += 1
 except:
 time.sleep(7)

driver.quit()

Yineleme ile bir alakası var ise döngü içerisinde "post" değişkenini tekrardan tanıtırsa da olur aslında. Bazen Selenium sekmeler arasında yapılan işlemlerde eski sekmedeki değişkeni unutabiliyor.
 
Python:
post.send_keys(str(x))

Bu şekilde dener misin?

Denedim maalesef aynı hatayı verdi

Yineleme eklemediğiniz için olabilir, şu kodu deneyin.

Kod:
while x < 100:
    try:
        post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')
        post.send_keys(x)
        x += 1
    except:
        time.sleep(7)

driver.quit()
denedim çalıştı.
Yardımcı olan herkese teşekkür ederim:)

Ek olarak ben Selenium'da açılan web penceresini tarayıcı olarak değil de, pytq5 arayüzünde belirlediğim bir bölümde açabilir miyim, bununla ilgili yararlanabileceğim doküman var mı?
 
Son düzenleme:
Denedim maalesef aynı hatayı verdi.

Denedim çalıştı.
Yardımcı olan herkese teşekkür ederim:)

Ek olarak ben Selenium'da açılan web penceresini tarayıcı olarak değil de, pytq5 arayüzünde belirlediğim bir bölümde açabilir miyim, bununla ilgili yararlanabileceğim doküman var mı?

Selenium belirli tarayıcılar için belirli sürücüler aracılığıyla kullanılır. Dolayısıyla dediğiniz şey yeni bir tarayıcı oluşturup orada işlemleri yapmak oluyor. Mesela Firefox için "geckodriver.exe" veya Chromium(?) tabanlı tarayıcılar için "chromedriver.exe" gerekir.
 
Denedim maalesef aynı hatayı verdi.

Denedim çalıştı.
Yardımcı olan herkese teşekkür ederim:)

Ek olarak ben Selenium'da açılan web penceresini tarayıcı olarak değil de, pytq5 arayüzünde belirlediğim bir bölümde açabilir miyim, bununla ilgili yararlanabileceğim doküman var mı?

Hocam sorunuzu pek anlamadım ama şu kütüphaneye bakın derim eğer ki yanlış anlamışsam doğrusunu iletirim size "qwebengineview".
 
Hocam sorunuzu pek anlamadım ama şu kütüphaneye bakın derim eğer ki yanlış anlamışsam doğrusunu iletirim size "qwebengineview".
evet aradığım buydu teşekkür ederim.

Python:
while x < 100:
    try:
        post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')#2.tur çalıştı
        post.send_keys(tweets[x]+random.choice(toplamtrend)+random.choice(toplamtrend)+random.choice(toplamtrend)+random.choice(toplamtrend)+random.choice(toplamtrend)+str(random.randint(1, 10000)))#2.tur çalıştı. 2.atılacak tweet  yazıldı.
        time.sleep(5)#2.tur çalıştı. 5 sn bekledi.
        tweet_btn.click()#2.turda burası çalışmadı.butona basmadı.7sn bekledi. Başa döndü ve 2. tweetin devamına 3.tweeti yapıştırdı. Burada bunu sürekli tekrarladı.butona basmadan
        x += 1
        time.sleep(40)
      
      
    except:
        time.sleep(7)

1. tur düzgün çalıştı. 2.döngüye geçtiğinde yarısından başa sarıyor sürekli. Kod sonlarına da not olarak ekledim tam yerini. Bunun nedeni ne olabilir?
 
Son düzenleme:
evet aradığım buydu teşekkür ederim.

Python:
while x < 100:
    try:
        post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')#2.tur çalıştı
        post.send_keys(tweets[x]+random.choice(toplamtrend)+random.choice(toplamtrend)+random.choice(toplamtrend)+random.choice(toplamtrend)+random.choice(toplamtrend)+str(random.randint(1, 10000)))#2.tur çalıştı. 2.atılacak tweet  yazıldı.
        time.sleep(5)#2.tur çalıştı. 5 sn bekledi.
        tweet_btn.click()#2.turda burası çalışmadı.butona basmadı.7sn bekledi. Başa döndü ve 2. tweetin devamına 3.tweeti yapıştırdı. Burada bunu sürekli tekrarladı.butona basmadan
        x += 1
        time.sleep(40)
     
     
    except:
        time.sleep(7)

1. tur düzgün çalıştı. 2.döngüye geçtiğinde yarısından başa sarıyor sürekli. Kod sonlarına da not olarak ekledim tam yerini. Bunun nedeni ne olabilir?
Hocam şunların işinize yarayacağını düşünüyorum.

Kod:
while x < 100:
    try:
        post = driver.find_element(By.CSS_SELECTOR,'[class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"]')
        post.send_keys(x)
        x += 1
    except:
        print("Element bulunamadı, 7 saniye bekleniyor")
        time.sleep(7)

driver.quit()
 

Dosya Ekleri

  • Screenshot_7.png
    Screenshot_7.png
    11,9 KB · Görüntüleme: 18
  • Screenshot_6.png
    Screenshot_6.png
    10,5 KB · Görüntüleme: 14

Yeni konular

Geri
Yukarı