• 06-05-2020, 02:53:28
    #1
    C# selenium ile bir sitedeki iframe içerisindeki video üzerinde işlemler yapmak için iframe'i seçtim ve üzerinde 2 tıklama işlemi sonrasında bir input içerisine değer girmek için gerekli yeri seçtirmek istedim fakat xpad bulunamadı hatası aldım.Sonrasında css selector ve class name ile denedim fakat hata almaya devam ettim.Sonrasında x ve y koordinatlarına tıklatıp sendkeys ile birinci inputa yazıyı yazdırdım sonrasında tekrar ikinci inputa aynı şekilde değer yazdırmaya çalıştım fakat verdiğiniz koordinatları iframe içerisinde bulamıyor ve hata veriyor.Bu sefer önce ikinci inputa koordinatı seçerek değer yazdırdım bu seferde birinci input için hata verdi.Yani Action ile sadece bir defa işlem yaptırabiliyorum ikincisinde hep hata veriyor.Bu şekilde bir sorun ile karşılaşan oldu mu?Sizce neyi gözden kaçırıyor olabilirim?
    IWebElement parentFrame = driver.FindElement(By.XPath("/html/body/div/div/div/div/div[1]/div[2]/div/div[1]/div/iframe"));
    driver.SwitchTo().Frame(parentFrame); // İframe seçiliyor
    
    driver.FindElement(By.XPath("/html/body/div/div/div[1]/div/div/div/button")).Click();
    System.Threading.Thread.Sleep(3000);
    driver.FindElement(By.XPath("/html/body/div[1]/div/div[1]/div/div[2]/div/div[2]/div/div[2]/div/div/form/div[9]/a")).Click(); // 2 tıklama işlemi yaptım bundan sonra nereye tıklatsam hata veriyor
    
    action.MoveByOffset(418, 251).Click().SendKeys("123456789").Build().Perform(); // FindElement ile seçemediğim için üzerine tıklatıp yazdırdım fakat action ile başka tıklama yapamıyorum hata veriyor
    
    driver.SwitchTo().Window(driver.WindowHandles.First());
    IWebElement parentFrame1 = driver.FindElement(By.XPath("/html/body/div/div/div/div/div[1]/div[2]/div/div[1]/div/iframe"));
    driver.SwitchTo().Frame(parentFrame1); // Burada tekrar sekmeyi seçip sonrasında iframe'i tekrardan seçtirip bir sorun var mı diye kontrol ettim fakat hata veriyor(bulamıyor fakat site kaynak kodların iframe o anda hala mevcut) iframe 2 defa seçemiyorum
    Buraya kadar okuduysanız teşekkürler
  • 06-05-2020, 02:56:14
    #2
    Site bilgilerini ve çalışma yaptığınız alanı da eklerseniz inceleyip dönüş yapabilirim
  • 06-05-2020, 03:04:11
    #3
    Tam selenium ile bot yazarken karşılaştım konuyla, az kullananı var diye düşünüyordum. Çünkü genelde python'ın meşhur frameworkları kullanılıyor bu işler için :d

    Konuya gelirsek video linki çekme konusu çetrefilli olabiliyor, şöyle bi 3 dakika göz gezdirdim hata göremedim fakat siteyi de görmek lazım yorum yapamayacağım
  • 06-05-2020, 03:31:16
    #4
    @bycyberchild; @Softwareus; mavi kısma yazı yazdırma çalışıyorum.Event tetikliyor heralde bildiğiniz tıklama yaptırıp yazı yazdırabileceğim farklı metotlar var mı?
  • 06-05-2020, 03:45:00
    #5
    IWebElement element = driver.FindElement(By.XPath("q"));
    element.SendKeys(Keys.Tab);
    element.SendKeys(Keys.Enter)
    Sendkeys.Sendwait("");

    bu şekilde enter tab yaptırarak yazdırırsın yarın pc ye geçince daha detaylı anlatabilirim
  • 06-05-2020, 03:55:31
    #6
    @charset; event ile ilgili bir sorun yok ancak , eğer iframe içerisine girdiğine emin isen mavi ile işaretlerinin elementi bu yolla bulmayı deneyebilirsin ,

    IWebElement elm = driver.FindElement(By.XPath("*//*[@name='email']")); eğer sorun hala devam ediyor olur ise yarın PC üzerinden test edip dönüş yapabilirim ben de iyi çalışmalar
  • 06-05-2020, 05:09:02
    #7
    Site akıllı sanki FindElement ile sadece 2 defa kullandırıyor üçüncüsünde hep hata veriyor yerlerini değiştiriyorum ilk ikisini buluyor üçüncüsüne bulunamadı hatası veriyor.Aynı zamanda action koordinat tıklama işlemini de bir defa yaptırıyor ikincisinde hep hata veriyor.Mesela 2 satır kod yazıyorum hep ilk yazılanı yapıyor 2. yazılandan hata veriyor. . Son iki işlemi aşağıdaki kod ile halletim fakat bir yere daha tıklatmam lazım onuda yaparsam bitecek fakat kullanacak metot kalmadı heralde
    action.MoveByOffset(416,196).Click().SendKeys("adres").SendKeys(Keys.Tab).SendKeys("123456789").SendKeys(Keys.Enter).Build().Perform();
    bycyberchild adlı üyeden alıntı: mesajı görüntüle
    @charset; event ile ilgili bir sorun yok ancak , eğer iframe içerisine girdiğine emin isen mavi ile işaretlerinin elementi bu yolla bulmayı deneyebilirsin ,

    IWebElement elm = driver.FindElement(By.XPath("*//*[@name='email']")); eğer sorun hala devam ediyor olur ise yarın PC üzerinden test edip dönüş yapabilirim ben de iyi çalışmalar
    baskiworld adlı üyeden alıntı: mesajı görüntüle
    IWebElement element = driver.FindElement(By.XPath("q"));
    element.SendKeys(Keys.Tab);
    element.SendKeys(Keys.Enter)
    Sendkeys.Sendwait("");

    bu şekilde enter tab yaptırarak yazdırırsın yarın pc ye geçince daha detaylı anlatabilirim
  • 06-05-2020, 05:13:15
    #8
    Xpath leri opera tarayıcısında chropath eklentisini kurup oradan alır mısınız hocam
  • 06-05-2020, 06:10:32
    #9
    try catch yaparak tüm xpath leri bu şekilde denettirin