• 22-05-2023, 02:37:11
    #1
    Merhaba arkadaşlar, selenium js diliyle bir bot yazıyorum ancak bir türlü element var mı diye sorgulayamadım. örnek olarak "<span class="a_atr">Üyelik bulunuyor</span>" bu clasda veri var mı diye sorgu yapmak istiyorum yardımcı olursanız çok sevinirim hayırlı forumlar dilerim.
  • Kabul Edilen Cevap
    • hocam değişken oluşturun xpath verisiyle aradığınız değeri ona atayın. Tıklama yapmayın ya da yazdırma işlemi yapmayın sonrasında if(element !=null ) yapabilirsiniz. else kısmında element null dönmüş olacak tıklama olmayacak hata alınmadan es geçilecek.

      ya da şu şekilde yapabilirsiniz:
      int bekle = 0;
      while(true){
      try{
         işlemi dene
          break; //işlem yapıldı döngüden çıkılabilir
      }
      
      catch{
      if(bekle<15){
      Thread.Sleep(1000); // belirli süre boyunca işlemi tekrar ediyoruz. Eğer sayfa açıldıktan ve belirli zaman geçtikten sonra gelen bir veriniz varsa bunu deneyin
      bekle++;
      }
      
      else{
      break; // 15 kez 1er saniye arayla bekledik hala tıklayamadık artık çıkış yapma vakti.
      }
      
      }
      }
  • 22-05-2023, 02:46:09
    #2
    aşağıdaki xpath verisini selenium ile uyarlayıp try/catch atarak varmı yok mu sorgusu yapabilirsiniz.

    var isFound = false;
    
    try{
          var elementText = await driver.findElement(web.By.xpath("//span[contains(text(),'Üyelik bulunuyor')]")).text;
          isFound = true;
    }catch(err){
    
    }
  • 22-05-2023, 02:50:51
    #3
    BeratYildiz adlı üyeden alıntı: mesajı görüntüle
    aşağıdaki xpath verisini selenium ile uyarlayıp try/catch atarak varmı yok mu sorgusu yapabilirsiniz.

    var isFound = false;
    
    try{
          var elementText = await driver.findElement(web.By.xpath("//span[contains(text(),'Üyelik bulunuyor')]")).text;
          isFound = true;
    }catch(err){
    
    }
    Hocam maalesef verdiğiniz kod hata veriyor.
    if (driver.findElement(By.className("a_atr ")) != null) { bu şekilde yaptım ancak bu da crash ediyor botu
  • 22-05-2023, 02:55:15
    #4
    GüçlüSMM adlı üyeden alıntı: mesajı görüntüle
    Hocam maalesef verdiğiniz kod hata veriyor.
    if (driver.findElement(By.className("a_atr ")) != null) { bu şekilde yaptım ancak bu da crash ediyor botu
    java ile mi yazıyorsunuz hocam botu. Kod C#'a benzer gibi duruyor da.
    crashı önlemek için try/catch olaylarını kullanın direkt. try/catch ile yoksa bile derlemeyi durdurtmaz.
  • 22-05-2023, 03:22:06
    #5
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    Kurumsal Üye
    hocam değişken oluşturun xpath verisiyle aradığınız değeri ona atayın. Tıklama yapmayın ya da yazdırma işlemi yapmayın sonrasında if(element !=null ) yapabilirsiniz. else kısmında element null dönmüş olacak tıklama olmayacak hata alınmadan es geçilecek.

    ya da şu şekilde yapabilirsiniz:
    int bekle = 0;
    while(true){
    try{
       işlemi dene
        break; //işlem yapıldı döngüden çıkılabilir
    }
    
    catch{
    if(bekle<15){
    Thread.Sleep(1000); // belirli süre boyunca işlemi tekrar ediyoruz. Eğer sayfa açıldıktan ve belirli zaman geçtikten sonra gelen bir veriniz varsa bunu deneyin
    bekle++;
    }
    
    else{
    break; // 15 kez 1er saniye arayla bekledik hala tıklayamadık artık çıkış yapma vakti.
    }
    
    }
    }
  • 22-05-2023, 03:24:48
    #6
    ripeapples adlı üyeden alıntı: mesajı görüntüle
    hocam değişken oluşturun xpath verisiyle aradığınız değeri ona atayın. Tıklama yapmayın ya da yazdırma işlemi yapmayın sonrasında if(element !=null ) yapabilirsiniz. else kısmında element null dönmüş olacak tıklama olmayacak hata alınmadan es geçilecek.

    ya da şu şekilde yapabilirsiniz:
    int bekle = 0;
    while(true){
    try{
       işlemi dene
        break; //işlem yapıldı döngüden çıkılabilir
    }
    
    catch{
    if(bekle<15){
    Thread.Sleep(1000); // belirli süre boyunca işlemi tekrar ediyoruz. Eğer sayfa açıldıktan ve belirli zaman geçtikten sonra gelen bir veriniz varsa bunu deneyin
    bekle++;
    }
    
    else{
    break; // 15 kez 1er saniye arayla bekledik hala tıklayamadık artık çıkış yapma vakti.
    }
    
    }
    }
    Çok teşekkür ederim hocam aradığım kod buydu