Auto-reply uygulamasında cevap okunmuyor

expart

Hectopat
Katılım
1 Ekim 2020
Mesajlar
540
Çözümler
2
Arkadaşlar merhaba, internetten yardım alarak auto-reply botu oluşturmaya çalışıyorum bir site için. Her şey doğru inanılmaz güzel gidiyordu benim için. Fakat bu cevaplar gelene kadar normalde main dosyasında yapsam sorun bitecek, ama çok karışık olacağı için main dosyama yansıtmak istemiyorum. mesajlar.txt dosyasından çekmesini istiyorum cevapları, fakat bir türlü yapamadım. Sürekli cevap bulunamadı hatası ile karşılaşıyorum. Kodum bu şekilde:


Kod:
import time
import pyautogui
from helium import start_chrome, kill_browser, S, find_all, click
# Cevapları yükleme fonksiyonu
def load_responses(file_path):
    responses = {}
    with open(file_path, 'r', encoding='utf-8') as file:
        for line in file:
            if line.strip():  # Boş satırları atla
                key, value = line.strip().split(':', 1)
                responses[key.strip().lower()] = value.strip()
    return responses
responses = load_responses('mesajlar.txt')
start_chrome('')
time.sleep(5)
username_x, username_y = 947, 564
pyautogui.click(x=username_x, y=username_y)
pyautogui.typewrite('', interval=0.1)
time.sleep(3)
password_x, password_y = 959, 641
pyautogui.click(x=password_x, y=password_y)
pyautogui.typewrite('', interval=0.1)
login_button_image = 'giriş.png'
login_button_location = pyautogui.locateCenterOnScreen(login_button_image)
if login_button_location is not None:
    pyautogui.click(login_button_location)
else:
    print("Giriş düğmesi bulunamadı")
time.sleep(3)
close_button_image = 'kapat.png'
close_button_location = pyautogui.locateCenterOnScreen(close_button_image)
if close_button_location is not None:
    pyautogui.click(close_button_location)
else:
    print("Kapat düğmesi bulunamadı")
time.sleep(5)
while True:
    not_seen_elements = find_all(S('.notSeenClass'))
    if not_seen_elements:
        for element in not_seen_elements:
            click(element)
            time.sleep(5)
            message_elements = find_all(S('.left-message'))
            if message_elements:
                for message_element in message_elements:
                    message_text = message_element.web_element.text.strip().lower()
                    message_text = message_text.replace('ş', 's').replace('ı', 'i')
                    if message_text in responses:
                        reply_text = responses[message_text]
                        pyautogui.typewrite(reply_text, interval=0.1)
                        pyautogui.press('enter')
                        print(f"Mesaj:{message_text}, Cevap: {reply_text}")
                    else:
                        print(f"Mesaj:{message_text}, Cevap: [Cevap bulunamadı]")
                    time.sleep(5)
            else:
                print("Left-message sınıfına sahip mesaj bulunamadı.")
    else:
        print("Okunmamış mesaj bulunamadı. Döngü sonlandırılıyor.")
        break

Burası da mesajlar.txt
Selam: Selam, nasıl yardımcı olabilirim?
sa,: Aleyküm selam
sa: Aleyküm selam
Teşekkürler: Rica ederim!

Yani sabahtan beri internetten araştırma yapıyorum fakat hiç bunun hakkında bir konu bulamadım. Bana yardım eden, yardım edebilecek bir insan çıkarsa çok sevinirim, her şey çalışıyor fakat türkçe karakterleri yazmıyor. Mesajları okuyamadığı için onu da yazmıyor. Her hangi bir şekilde düzenleyip atabilecek bir insan varsa çok minnettar kalırım.

Koddaki sorunlar şunlar:
-Türkçe karakterleri yazmaması,
-mesajlar.txt dosyasındaki cevapları alıp oraya yazamaması.
 
Son düzenleyen: Moderatör:
Autogui yerine, selenium kullan otomasyon için. Böylece mesajları okuyamama problemi çözülmüş olur. Ayrıca ekranda login aratmakla falan uğraşmazsın. Kod olarak da, direkt kod vermeyeyim. Yapamadıkça yaz, yönlendireyim.
 

Webdriver istiyor Selenium için bir türlü bulamadım nereden yapabileceğimi.


Webdriver nereden güvenli şekilde kurabilirim onu söylerseniz sevinirim, ayrıca mesajları okuyabiliyor mesajları sadece cevap veremiyor nedenini çözemedim ana dosyaya da eklemeyi denedim mesajları yine bir işe yaramadı.
 
Webdriver istiyor Selenium için bir türlü bulamadım nereden yapabileceğimi.
Chrome için;
Firefox için;

Doğru okumuyor olabilir... Hangi siteye deniyorsun?
 

Tamamdır teşekkür ederim, takıldığım yerler olduğunda yardım etmeniz mümkün mü? Mesaj yerini hiç yapamıyorum onu nasıl yapabilirim acaba. Yani ana dosyaya yapsam bile cevap bulunamadı diyor.
 
Tamamdır teşekkür ederim, takıldığım yerler olduğunda yardım etmeniz mümkün mü? Mesaj yerini hiç yapamıyorum onu nasıl yapabilirim acaba. Yani ana dosyaya yapsam bile cevap bulunamadı diyor.
Cevap bulunamadı message_text'i nasıl hallettiğinden kaynaklanıyor. Ona dikkat et. Mesajı katı şekilde arıyorsun. Dolayısıyla gelen şey senin beklediğinden azıcık farklı olsa, cevap bulunamadı alıyorsun.
 

Reis yeniyim bu işte pek bir bilgim yok message_text yerine ne yapabilirim? Nasıl değişiklikler yapabilirim aydınlatırsan sevinirim. Ve seleniuma geçmem şart mı Pyautogui'den ayarlamıştım her şeyi ama? Received_message kullanılabilir mi? Sonuç: Received_message kullandım ve işe yaramadı yeniyim çok yoruyorsam kusura bakmayın öğrenmeye çalışıyorum en hızlı şekilde.

Edit v2: Sanırım demek istediğinizi anladım, ama orada ne yazıyorsa aynı şekilde yazıyor ama buna rağmen cevap vermiyor. Yani hiçbir değişiklik olmadan yazdım.
 
Son düzenleme:
Metni doğru okuduğuna emin misin programın? Hangi site için deniyorsun?
 
Metni doğru okuduğuna emin misin programın? Hangi site için deniyorsun?

Aslında emin değilim ama okuyor gibi isterseniz sizde bakın bir koda, CMD üzerinden orada yüklenen mesajları gösteriyor ve hepsini doğru alıyor. Ama cevap bulunamadı diyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…