Python açılır pencereyi kapatmak

musto444

Hectopat
Katılım
30 Eylül 2020
Mesajlar
64
Merhabalar. Selenium Python ile bir web sayfasında popup penceresi açıldı mı diye kontrol etmek açılırsa tamam a tıklayıp çıkmak için nasıl bir kod yazmalıyım?

Popup her zaman çıkmıyor. Çıktığında otomatik kapatabiliyorum fakat çıkmadığında o satır hata veriyor. Yani benim ilk baş kontrol yapmam daha sonra işlem yapmam gerekiyor. Şimdiden teşekkür ederim.

----------------------------------------------------------------------------------------------------

Application. Wait (Now + timevalue("0:00:15"))
Site. Switchtonextwindow.

site.FindElementByXPath("/html/body/div[1]/div[1]/div/div/div[1]/div/div[2]/div[2]/div/div[2]/div[3]/a/div/div[2]", 10000).Click

site.FindElementByXPath("/html/body/div[1]/div/div/div[3]/a", 5000).Click 'popup kapat (bu kısımda bazen pencere çıkmıyor. Bu komutun kontrolle çalışmasını istiyorum.)

site.FindElementByXPath("/html/body/div[1]/div[1]/div/div/div[1]/div/div[3]/div/div/div[2]/div/div[3]/div/button", 5000).Click

-----------------------------------------------------------------------------------------------------

Görselde açılan pencerenin bilgileri var.
 

Dosya Ekleri

  • popup.JPG
    popup.JPG
    69,6 KB · Görüntüleme: 55
Son düzenleyen: Moderatör:
Öncelikle kolay gelsin. Try ve except ile yapabilirsiniz dilediğiniz şeyi. Yalnız bu işlemi otomatik yapacaktır, çıktığı zaman tıklamanız gerekmeyecektir.
Python:
try:
    # İlk önce buu kodu çalıştıracak.
    site.FindElementByXPath("/html/body/div[1]/div/div/div[3]/a", 5000).Click
except:
    # Eğer try içindeki kod hata verirse hata kodu
    # verip programı kapatmak yerine except'in içindekini yapacak.
    # Bu durumda, pass dediğim için hiçbir şey yapmayacak. Geçecek.
    pass

Ayrıca, kodlarınızı Sosyal'de nasıl kod paylaşılır? linkindekine göre paylaşırsanız okunup anlaşılması çok daha kolay olur.
 
Öncelikle kolay gelsin. Try ve except ile yapabilirsiniz dilediğiniz şeyi. Yalnız bu işlemi otomatik yapacaktır, çıktığı zaman tıklamanız gerekmeyecektir.
Python:
try:
    # İlk önce buu kodu çalıştıracak.
    site.FindElementByXPath("/html/body/div[1]/div/div/div[3]/a", 5000).Click
except:
    # Eğer try içindeki kod hata verirse hata kodu
    # verip programı kapatmak yerine except'in içindekini yapacak.
    # Bu durumda, pass dediğim için hiçbir şey yapmayacak. Geçecek.
    pass

Ayrıca, kodlarınızı Sosyal'de nasıl kod paylaşılır? linkindekine göre paylaşırsanız okunup anlaşılması çok daha kolay olur.

Cevabınız için teşekkür ederim. Dediğinizi yaptım fakat aşağıdaki şekildeki gibi uyarı alıyorum. Bakarsanız sevinirim.
 

Dosya Ekleri

  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    30,7 KB · Görüntüleme: 56
Hocam, kodu python ile yazdığınıza emin misiniz?
Not: Kodunuzun en azından o kısmını fotoğraf değil de kod olarak paylaşırsanız çok iyi olur.
 
Hocam, kodu python ile yazdığınıza emin misiniz?

Kodları ben yazmadım. Önceden yazılmış bir kodu işimi görecek şekilde düzenlemeye çalışıyorum. exceldeki verileri web sayfasına aktarmak için yazılmış. Programlama bilmiyorum. Araştıra araştıra birşeyler yapmaya çalışıyorum. Sizi yanılttıysam kusura bakmayın.
 
Visual Basic ile yazılmış anladığım kadarıyla. Visual Basic bilmiyorum şahsen ama internetten bir şeyler baktım. Umarım çalışır.

[CODE title="Örnek kod"]Try
site.FindElementByXPath("/html/body/div[1]/div/div/div[3]/a", 5000).Click
Catch ex As Exception
Console.WriteLine("Kapatılacak popup bulunamadı.")
End Try[/CODE]

Az önceki try ve except kısmını tamamen sileceksiniz ve yerine bunu getireceksiniz.
 
Visual Basic ile yazılmış anladığım kadarıyla. Visual Basic bilmiyorum şahsen ama internetten bir şeyler baktım. Umarım çalışır.

[CODE title="Örnek kod"]Try
site.FindElementByXPath("/html/body/div[1]/div/div/div[3]/a", 5000).Click
Catch ex As Exception
Console.WriteLine("Kapatılacak popup bulunamadı.")
End Try[/CODE]

Az önceki try ve except kısmını tamamen sileceksiniz ve yerine bunu getireceksiniz.

Malesef yine aynı uyarı çıkıyor. Teşekkür ederim.
 

Dosya Ekleri

  • Ekran Alıntısı2.JPG
    Ekran Alıntısı2.JPG
    37,4 KB · Görüntüleme: 61
O zaman maalesef başka bir fikrim yok. konuyu açış saatinizden 24 saat geçtikten sonra konuyu öne çıkarmayı deneyebilirsiniz. Belki bilen birileri öyle mesajınızı görür.
 

Yeni konular

Geri
Yukarı