• 19-08-2023, 00:42:00
    #1
    Merhaba arkadaşlar uzun süredir selenium ile küçük programlar yazıyorum ancak böyle bir şey başıma gelmemişti. Sorunu aşağıda anlattım. Nedir bunun olayı?

    Yukarıdaki Dosya Seç alanına tıklama olayı gerçekleştirmek istiyorum ancak hata alıyorum.

    Butonun kodu full hali:
    <input type="file" id="upload" name="import" size="25">
    Benimkullandığım tıklama işlemi:
    drv.FindElement(By.Id("upload")).Click();
    Hatanın çıktısı:OpenQA.Selenium.WebDriverArgumentException: 'invalid argument
    (Session info: chrome=115.0.5790.173)'
    --

    Şimdiden teşekkürler.
  • Kabul Edilen Cevap
    • pess1nu5 adlı üyeden alıntı: mesajı görüntüle
      xPath kullanımını gördüm ancak şuana kadar her yerde butonların idlerini kullanarak tıklama işlemini yaptırdım.
      Burada neden çalışmadı kafam oraya takıldı açıkcası.
      Hocam bazı yerlerde sistem İD yi her seferinde farklı atıyor. Selenium'da böyle bir işlem var. İD yerine xpath kullanarak farklı bir koda tıklattırabilirsiniz. Ben java ile yazıyorum c# ile görmedim ama farklılık olacağını sanmıyorum. rula path diye chrome eklentsi var path'i otomatik çekiyor onu kullanabilirsiniz
  • 19-08-2023, 00:48:04
    #2
    XPath kullanımını araştırabilirsin senin için daha faydalı olacaktır.

    (Ukalalık olarak algıma ama; Kodu direk paylaşmıyorum ki balık tutmayı öğren diye.)
  • 19-08-2023, 00:57:19
    #3
    Blackhatx86 adlı üyeden alıntı: mesajı görüntüle
    XPath kullanımını araştırabilirsin senin için daha faydalı olacaktır.

    (Ukalalık olarak algıma ama; Kodu direk paylaşmıyorum ki balık tutmayı öğren diye.)

    xPath kullanımını gördüm ancak şuana kadar her yerde butonların idlerini kullanarak tıklama işlemini yaptırdım.
    Burada neden çalışmadı kafam oraya takıldı açıkcası.
  • 19-08-2023, 01:02:43
    #4
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    pess1nu5 adlı üyeden alıntı: mesajı görüntüle
    xPath kullanımını gördüm ancak şuana kadar her yerde butonların idlerini kullanarak tıklama işlemini yaptırdım.
    Burada neden çalışmadı kafam oraya takıldı açıkcası.
    Hocam bazı yerlerde sistem İD yi her seferinde farklı atıyor. Selenium'da böyle bir işlem var. İD yerine xpath kullanarak farklı bir koda tıklattırabilirsiniz. Ben java ile yazıyorum c# ile görmedim ama farklılık olacağını sanmıyorum. rula path diye chrome eklentsi var path'i otomatik çekiyor onu kullanabilirsiniz
  • 19-08-2023, 01:20:58
    #5
    Blackhatx86 adlı üyeden alıntı: mesajı görüntüle
    XPath kullanımını araştırabilirsin senin için daha faydalı olacaktır.

    (Ukalalık olarak algıma ama; Kodu direk paylaşmıyorum ki balık tutmayı öğren diye.)
    Şu şekilde bir kullanım yaptım ancak yine aynı hata hocam. Anlamadım..
                drv.FindElement(By.XPath("//input[@name='import']")).Click();
  • 19-08-2023, 01:23:25
    #6
    Hatanın çıktısı:OpenQA.Selenium.WebDriverArgumentException: 'invalid argument
    (Session info: chrome=115.0.5790.173)'

    hocam bu chrome sürümü ile alakalı bir uyarı. 'invalid argument ' geçersiz diyor. chrome sürümü olabilir mi =?
  • 19-08-2023, 01:25:24
    #7
    GokhanGok adlı üyeden alıntı: mesajı görüntüle
    Hatanın çıktısı:OpenQA.Selenium.WebDriverArgumentException: 'invalid argument
    (Session info: chrome=115.0.5790.173)'

    hocam bu chrome sürümü ile alakalı bir uyarı. 'invalid argument ' geçersiz diyor. chrome sürümü olabilir mi =?
    Hocam muhtemelen Chrome sürümü ile alaklı değil. Ama sorunun kaynağını gerçekten anlamış değilim
  • 19-08-2023, 01:26:04
    #8
    pess1nu5 adlı üyeden alıntı: mesajı görüntüle
    Hocam muhtemelen Chrome sürümü ile alaklı değil. Ama sorunun kaynağını gerçekten anlamış değilim
    Chatgpt'ye sordum
    WebDriver ve Tarayıcı Ayarları: Bu kod parçasının çalışabilmesi için öncelikle bir WebDriver örneği oluşturmanız ve tarayıcıyı başlatmanız gerekir. Örneğin, ChromeDriver ile Chrome tarayıcısını başlatmak için:

    1. IWebDriver driver = new ChromeDriver();
    arayıcı Kapatma: İşlemler tamamlandıktan sonra tarayıcıyı kapatmayı unutmamalısınız:
    driver.Quit();
    Tam bir senaryo içinde kullanım örneği aşağıdaki gibi olabilir (C# ve ChromeDriver kullanılarak):

    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;
    
    class Program
    {
        static void Main()
        {
            IWebDriver driver = new ChromeDriver();
    
            try
            {
                driver.Navigate().GoToUrl("https://example.com"); // Sayfanın yüklendiği bir URL girilmeli
    
                IWebElement uploadButton = driver.FindElement(By.Id("upload"));
                uploadButton.Click();
    
                // Dosya yükleme işlemleri burada gerçekleştirilmeli
    
                // Dosya yükleme işlemi tamamlandıktan sonra devam edebilirsiniz
            }
            finally
            {
                driver.Quit();
            }
        }
    }

    belki faydası olur
  • 19-08-2023, 01:41:10
    #9
    GokhanGok adlı üyeden alıntı: mesajı görüntüle
    Chatgpt'ye sordum
    WebDriver ve Tarayıcı Ayarları: Bu kod parçasının çalışabilmesi için öncelikle bir WebDriver örneği oluşturmanız ve tarayıcıyı başlatmanız gerekir. Örneğin, ChromeDriver ile Chrome tarayıcısını başlatmak için:

    1. IWebDriver driver = new ChromeDriver();
    arayıcı Kapatma: İşlemler tamamlandıktan sonra tarayıcıyı kapatmayı unutmamalısınız:
    driver.Quit();
    Tam bir senaryo içinde kullanım örneği aşağıdaki gibi olabilir (C# ve ChromeDriver kullanılarak):

    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;
    
    class Program
    {
        static void Main()
        {
            IWebDriver driver = new ChromeDriver();
    
            try
            {
                driver.Navigate().GoToUrl("https://example.com"); // Sayfanın yüklendiği bir URL girilmeli
    
                IWebElement uploadButton = driver.FindElement(By.Id("upload"));
                uploadButton.Click();
    
                // Dosya yükleme işlemleri burada gerçekleştirilmeli
    
                // Dosya yükleme işlemi tamamlandıktan sonra devam edebilirsiniz
            }
            finally
            {
                driver.Quit();
            }
        }
    }
    belki faydası olur
    Hocam vakit ayırmışsınız ancak buradaki kod ile benim kodum birebir aynı neredeyse ayrıca xpath falan hikaye gibi farklı bir çzöüm bulmak lazım