• 26-04-2023, 17:48:06
    #1
    pyhton konusunda kendimi geliştirmeye çalışıyorum ve selenium kullanarak bir bot kodlamaya çalışıyorum ama bir hata alıyorum yardımcı olabilicek arkadaş varsa çok sevinirim
  • 26-04-2023, 17:52:57
    #2
    Paylaşın hocam burada kod olarak bakalım
  • 26-04-2023, 17:56:26
    #3
    Konu sahibinin izniyle bir şey sorabilir miyim? Python advertools ile ilgili 🙏🏻
    Muratgulgen adlı üyeden alıntı: mesajı görüntüle
    Paylaşın hocam burada kod olarak bakalım
  • 26-04-2023, 18:02:14
    #4
    kodları ve hatayı paylaşıp alıntılayın hocam.
  • 26-04-2023, 18:02:33
    #5
    Muratgulgen adlı üyeden alıntı: mesajı görüntüle
    Paylaşın hocam burada kod olarak bakalım

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import Select
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    import time
    
    # Selenium WebDriver'ı başlatın ve web sayfasını açın
    driver = webdriver.Chrome()
    driver.get("https://xxx")
    
    # Pencere boyutunu ayarlayın
    driver.set_window_size(516, 1012)
    
    # Sayfanın yüklenmesini bekle
    wait = WebDriverWait(driver, 20)
    wait.until(EC.presence_of_element_located((By.ID, "txtAdi")))
    
    # Kişisel bilgi formunu doldurun
    driver.find_element(By.ID, "txtAdi").send_keys("testtososo")
    driver.find_element(By.ID, "txtSoyadiniz").send_keys("teoktoekt")
    driver.find_element(By.ID, "txtTelefon").send_keys("(5321234242)")
    
    # İl seçim kutusundan bir seçenek seçin
    dropdown_il = Select(driver.find_element(By.ID, "ddlIl"))
    dropdown_il.select_by_visible_text("ADANA")
    
    # İlçe seçim kutusundan bir seçenek seçin
    dropdown_ilce = Select(driver.find_element(By.ID, "ddlOyIlce"))
    dropdown_ilce.select_by_visible_text("GERGER")
    
    # Mahalle seçim kutusundan bir seçenek seçin
    dropdown_mahalle = Select(driver.find_element(By.ID, "ddlOyMahalle"))
    dropdown_mahalle.select_by_visible_text("CEVİZPINAR KÖYÜ")
    
    # Memleket seçim kutusundan bir seçenek seçin
    dropdown_memleket = Select(driver.find_element(By.ID, "ddlMemleket"))
    dropdown_memleket.select_by_visible_text("BİLECİK")
    
    # Formu kaydedin
    driver.find_element(By.ID, "txtReferans").send_keys("testss2")
    driver.find_element(By.ID, "btnKayit").click()
    
    # Sayfanın yüklenmesini bekle ve telefon numarasını güncelleyin
    time.sleep(5)
    wait.until(EC.presence_of_element_located((By.ID, "txtTelefon")))
    driver.find_element(By.ID, "txtTelefon").clear()
    driver.find_element(By.ID, "txtTelefon").send_keys("(53285484444)")
    driver.find_element(By.ID, "btnKayit").click()
    
    # WebDriver'ı kapatın ve pencereyi kapatın
    driver.quit()
    şöyle bir kod oluşturduk

    Aldığımız Hata Şu Şekilde ;

    Traceback (most recent call last):
      File "C:\Users\Astro\Desktop\bot\testo.py", line 13, in <module>
        driver.find_element(By.ID, "txtAdi").send_keys("testtososo")
      File "C:\Users\Astro\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webelement.py", line 231, in send_keys
        self._execute(
      File "C:\Users\Astro\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webelement.py", line 403, in _execute
        return self._parent.execute(command, params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\Astro\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 440, in execute
        self.error_handler.check_response(response)
      File "C:\Users\Astro\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 245, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
      (Session info: chrome=112.0.5615.122)
    Stacktrace:
    Backtrace:
            GetHandleVerifier [0x0049DCE3+50899]
            (No symbol) [0x0042E111]
            (No symbol) [0x00335450]
            (No symbol) [0x0035C706]
            (No symbol) [0x0035BFD0]
            (No symbol) [0x0037B8FC]
            (No symbol) [0x00358EC6]
            (No symbol) [0x0037BC54]
            (No symbol) [0x0038E01C]
            (No symbol) [0x0037B6F6]
            (No symbol) [0x00357708]
            (No symbol) [0x0035886D]
            GetHandleVerifier [0x00703EAE+2566302]
            GetHandleVerifier [0x007392B1+2784417]
            GetHandleVerifier [0x0073327C+2759788]
            GetHandleVerifier [0x00535740+672048]
            (No symbol) [0x00438872]
            (No symbol) [0x004341C8]
            (No symbol) [0x004342AB]
            (No symbol) [0x004271B7]
            BaseThreadInitThunk [0x75EA0099+25]
            RtlGetAppContainerNamedObjectPath [0x76F97B6E+286]
            RtlGetAppContainerNamedObjectPath [0x76F97B3E+238]
  • 26-04-2023, 18:24:30
    #6
    26 ve 27. Satırlar asıl problem. Onu araştırın, kodun tamamı olmadığı için eksik parametreler var tam anlayamadım.
    txtAdi değişkeni sanırım send_keys fonksiyonunu desteklemiyor.
    İlk olarak sendkeys ten önce oraya click yapın sonra send keys gönderin.
    Veya değeri xpath, css selector vs. Deneyin.
    Ya da aldığınız değer yani id daha üst bir yapıya ait olabilir. Alt elementlerini deneyin
  • 26-04-2023, 18:39:11
    #7
    selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '....'))).send_keys("xxxx")
    böyle kullanmayı deneyebilirsiniz. 10 saniye elementin var olmasını bekler eğer bulunamazsa 10 saniye sonra hata verir try except ile kontrol etmeyi deneyebilirsiniz.

    ek olarak tıklamak istediğiniz elemente dikkat edin Inspect tabından bakınız switch_to.frame kullanmanız gerekebilir.
  • 26-04-2023, 19:03:51
    #8
    Chatgpt şunu dedi



    # Sayfanın yüklenmesini bekle
    wait = WebDriverWait(driver, 20)

    # Kişisel bilgi formunu doldurun
    wait.until(EC.element_to_be_clickable((By.ID, "txtAdi"))).send_keys("testtososo")
    wait.until(EC.element_to_be_clickable((By.ID, "txtSoyadiniz"))).send_keys("teoktoekt")
    wait.until(EC.element_to_be_clickable((By.ID, "txtTelefon"))).send_keys("(5321234242)")

    Bu düzenlemelerle, sayfanın yüklenmesini bekleyerek ilgili öğelerle etkileşime geçebilirsiniz. Eğer hala hata alırsanız, web sayfasındaki öğelerin ID'lerini kontrol edin ve kodunuzda doğru olduğundan emin olun.
  • 30-04-2023, 15:45:36
    #9
    Theyka adlı üyeden alıntı: mesajı görüntüle
    selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '....'))).send_keys("xxxx")
    böyle kullanmayı deneyebilirsiniz. 10 saniye elementin var olmasını bekler eğer bulunamazsa 10 saniye sonra hata verir try except ile kontrol etmeyi deneyebilirsiniz.

    ek olarak tıklamak istediğiniz elemente dikkat edin Inspect tabından bakınız switch_to.frame kullanmanız gerekebilir.
    Wp yazdım ustam