• 01-07-2023, 03:55:43
    #1
    Herkese Merhaba,

    Abilerim, kardeşlerim bir program yapmaya çalışıyorum bu program gayet iyi işliyor fakat bir özellik ekleyeceğim insanların program içinde yaptıkları yorumları google yorum olarak otomatik atacak fakat yüzdüm yüzdüm kuyrukta takıldım kaldım. Yardımınıza ihtiyacım var.
    Python selenium buradaki iframe'i yakalayamıyor tahminimce iframe in iframe olarak tasarlanmış fakat ne kadar denesemde bulamadım ilgili linki aşağıya bırakıyorum bilen arkadaşlardan yardım istiyorum.
    Şimdiden teşekkürler. Ücretli yapmak isteyenler de iletişime geçerse sevinirim.

    Google Yorum Bağlantısı: https://g.page/r/CaFqyn4Ar569EAI/review

    Burada ki yorum yapılacak kısmı selenium yakalayamıyor:

    İlgili kodlarım şöyle:

    # Çerçeveyi bulma
                    iframe_parent = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "yDmH0d")))
                    iframe = iframe_parent.find_element(By.TAG_NAME, "iframe")
                    driver.switch_to.frame(iframe)
                    time.sleep(4)
                    # Yorum gönderme işlemleri
                    for comment in comments:
                        # Yorum alanını bulma
                        comment_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "textarea[jsname='YPqjbf']")))
                        comment_input.send_keys(comment)
                        time.sleep(4)
                        # Fotoğraf ekleme
                        if photos:
                            add_photo_button = driver.find_element(By.CSS_SELECTOR, "div[jscontroller='QDZmc']")
                            add_photo_button.click()
                            time.sleep(2)
                            upload_button = driver.find_element(By.CSS_SELECTOR, "input[type='file']")
                            for photo in photos:
                                upload_button.send_keys(photo)
                                time.sleep(2)
                        # Gönder butonuna tıklama
                        submit_button = driver.find_element(By.CSS_SELECTOR, "button[jsname='LgbsSe']")
                        submit_button.click()
                        # İşlemi loglamak için biraz bekleyelim
                        time.sleep(2)
                        self.txt_log.append('Yorum gönderildi: ' + comment)
                        # İlerleme çubuğunu güncelleme
                        self.progress_bar.setValue(self.progress_bar.value() + 1)
                        # Yorum aralıkları için biraz bekleyelim
                        time.sleep(2)
                except TimeoutException:
                    self.txt_log.append('Çerçeve yüklenirken zaman aşımı hatası.')
                except NoSuchElementException:
                    self.txt_log.append('Gerekli elementler bulunamadı.')
  • 01-07-2023, 04:47:07
    #2
    örnek c# kodu ;
    Driver.SwitchTo().Frame("goog-reviews-write-widget");
    Thread.Sleep(3000);
    Driver.FindElement(By.XPath("//textarea[starts-with(@placeholder,'Kişisel deneyiminizi burada paylaşın')]")).SendKeys(yorumlistesi[i]);
    • mebularts
    mebularts bunu beğendi.
    1 kişi bunu beğendi.
  • 01-07-2023, 04:48:16
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    örnek c# kodu ;
    Driver.SwitchTo().Frame("goog-reviews-write-widget");
    Thread.Sleep(3000);
    Driver.FindElement(By.XPath("//textarea[starts-with(@placeholder,'Kişisel deneyiminizi burada paylaşın')]")).SendKeys(yorumlistesi[i]);
    Hemen deniyorum umarım işe yarar hocam. Öok teşekkürler
    Bunu siz c# da denediniz ve oldu değil mi yani pythona uyarlamak lazım bunu
  • 01-07-2023, 04:50:57
    #4
    mebularts adlı üyeden alıntı: mesajı görüntüle
    Hemen deniyorum umarım işe yarar hocam. Öok teşekkürler
    Bunu siz c# da denediniz ve oldu değil mi yani pythona uyarlamak lazım bunu
    evet hocam tek yapman gereken frame ye id vermek webdriver oraya yönlencektir ondan sonrası zaten yıldız ve yorum ver devam
    • mebularts
    mebularts bunu beğendi.
    1 kişi bunu beğendi.
  • 01-07-2023, 04:51:26
    #5
    Misafir adlı üyeden alıntı: mesajı görüntüle
    evet hocam tek yapman gereken frame ye id vermek webdriver oraya yönlencektir ondan sonrası zaten yıldız ve yorum ver devam
    Çok sağolun hocam hemen deniyorum
  • 01-07-2023, 04:58:04
    #6
    Misafir adlı üyeden alıntı: mesajı görüntüle
    evet hocam tek yapman gereken frame ye id vermek webdriver oraya yönlencektir ondan sonrası zaten yıldız ve yorum ver devam
    Yardımınız için çok teşekkür ederim hocam maalesef bu da olmadı

    #Çerçeveyi bul
                    iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[name="goog-reviews-write-widget"]')
                    driver.switch_to.frame(iframe)
                    time.sleep(4)
                    # Yorum gönderme işlemleri
                    for comment in comments:
                        # Yorum alanını bulma
                        comment_input = driver.find_element(By.XPATH, '//textarea[starts-with(@placeholder, "Kişisel deneyiminizi burada paylaşın")]')
                        comment_input.send_keys(comment)
                        time. Sleep(4)
  • 01-07-2023, 05:03:21
    #7
    mebularts adlı üyeden alıntı: mesajı görüntüle
    Yardımınız için çok teşekkür ederim hocam maalesef bu da olmadı

    #Çerçeveyi bul
                    iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[name="goog-reviews-write-widget"]')
                    driver.switch_to.frame(iframe)
                    time.sleep(4)
                    # Yorum gönderme işlemleri
                    for comment in comments:
                        # Yorum alanını bulma
                        comment_input = driver.find_element(By.XPATH, '//textarea[starts-with(@placeholder, "Kişisel deneyiminizi burada paylaşın")]')
                        comment_input.send_keys(comment)
                        time. Sleep(4)
    "goog-reviews-write-widget " bu bir css parçası değil hocam framenin class name i driver.switch_to.frame('goog-reviews-write-widget ') bu şekilde birşey yapman lazım bende sorunsuz çalışmakta.
    python syntaxlara hakim değilim By.ID yada By.ClassName olarakta denedim oluyor yani
    • mebularts
    mebularts bunu beğendi.
    1 kişi bunu beğendi.
  • 01-07-2023, 05:22:47
    #8
    Misafir adlı üyeden alıntı: mesajı görüntüle
    "goog-reviews-write-widget " bu bir css parçası değil hocam framenin class name i driver.switch_to.frame('goog-reviews-write-widget ') bu şekilde birşey yapman lazım bende sorunsuz çalışmakta.
    python syntaxlara hakim değilim By.ID yada By.ClassName olarakta denedim oluyor yani
    Anladım hocam ben de yeni yeni öğreniyorum yapamadığım yerlerde sizlerden yardım alıyorum. Dediğiniz gibi ID ve Classname olarak ta çağırdım.
    Gerekli elementler bulunamadı hatası veriyor.

    Sizin için video çektim: https://bicobi.org/post/93_.html
  • 01-07-2023, 05:26:41
    #9
    mebularts adlı üyeden alıntı: mesajı görüntüle
    Anladım hocam ben de yeni yeni öğreniyorum yapamadığım yerlerde sizlerden yardım alıyorum. Dediğiniz gibi ID ve Classname olarak ta çağırdım.
    Gerekli elementler bulunamadı hatası veriyor.

    Sizin için video çektim: https://bicobi.org/post/93_.html
    c# yazsan sorun yokta python inan hakim olduğum bir dil değil
    • mebularts
    mebularts bunu beğendi.
    1 kişi bunu beğendi.