使用Selenium+PhantomJS實現網頁內容加載(包括網頁后期Ajax出來的結果)


一、需求

  需要Nuget下面的庫:

  

 

二、代碼

class Program
    {
        static void Main(string[] args)
        {
            TestPhantomJsDriver();
             
        }


        private static void TestPhantomJsDriver()
        {
            var service = PhantomJSDriverService.CreateDefaultService();
            service.DiskCache = true;
            service.IgnoreSslErrors = true;
            service.HideCommandPromptWindow = true;
            service.LoadImages = false;
            service.LocalToRemoteUrlAccess = true;
            PhantomJSDriver driver = new PhantomJSDriver(service, new PhantomJSOptions(), TimeSpan.FromSeconds(120));
            var nav = driver.Navigate();
            try
            {
                nav.GoToUrl("http://v.youku.com/v_show/id_XMjc5MTkwNjQ5Ng==.html");
                nav.Refresh();
            }
            catch (Exception e) { Console.WriteLine("refresh exception:" + e.Message); }


            //WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            //try
            //{
            //    var isok = wait.Until(dr => dr.FindElement(By.XPath("span[@id='videoTotalPV']/em")) != null);
            //    var src2 = driver.PageSource;
            //    Console.WriteLine(src == src2);
            //    Console.WriteLine(isok);
            //}
            //catch { }
            var st = driver.TakeScreenshot();
            st.SaveAsFile("d:\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg", ScreenshotImageFormat.Jpeg);

        }

        private static void TestChromeJsDriver()
        {
            var service = ChromeDriverService.CreateDefaultService();
            service.HideCommandPromptWindow = true;
            ChromeDriver driver = new ChromeDriver(service, new ChromeOptions() { }, TimeSpan.FromSeconds(120));
      
            var nav = driver.Navigate();
            try
            {
                nav.GoToUrl("http://v.youku.com/v_show/id_XMjc5MTkwNjQ5Ng==.html");
                nav.Refresh();
            }
            catch (Exception e) { Console.WriteLine("refresh exception:" + e.Message); }
            var st = driver.TakeScreenshot();
            st.SaveAsFile("d:\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg", ScreenshotImageFormat.Jpeg);

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM