根据浏览器截图

//读取网页生成IMG
    public class WebSiteThumbnail
    {
        Bitmap m_Bitmap;
        string m_Url;
        int m_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth, m_ThumbnailHeight;
        public WebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
        {
            m_Url = Url;
            m_BrowserHeight = BrowserHeight;
            m_BrowserWidth = BrowserWidth;
            m_ThumbnailWidth = ThumbnailWidth;
            m_ThumbnailHeight = ThumbnailHeight;
        }
        public static Bitmap GetWebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)
        {
            WebSiteThumbnail thumbnailGenerator = new WebSiteThumbnail(Url, BrowserWidth, BrowserHeight, ThumbnailWidth, ThumbnailHeight);
            return thumbnailGenerator.GenerateWebSiteThumbnailImage();
        }
        public Bitmap GenerateWebSiteThumbnailImage()
        {
            Thread m_thread = new Thread(new ThreadStart(_GenerateWebSiteThumbnailImage));
            m_thread.SetApartmentState(ApartmentState.STA);
            m_thread.Start();
            m_thread.Join();
            return m_Bitmap;
        }
        private void _GenerateWebSiteThumbnailImage()
        {
            WebBrowser m_WebBrowser = new WebBrowser();
            m_WebBrowser.ScrollBarsEnabled = false;
            m_WebBrowser.Navigate(m_Url);
            m_WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
            while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)
                Application.DoEvents();
            m_WebBrowser.Dispose();
        }
        private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowser m_WebBrowser = (WebBrowser)sender;
            m_WebBrowser.ClientSize = new Size(this.m_BrowserWidth, this.m_BrowserHeight);
            m_WebBrowser.ScrollBarsEnabled = false;
            m_Bitmap = new Bitmap(m_WebBrowser.Bounds.Width, m_WebBrowser.Bounds.Height);
            m_WebBrowser.BringToFront();
            m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);
            m_Bitmap = (Bitmap)m_Bitmap.GetThumbnailImage(m_ThumbnailWidth, m_ThumbnailHeight, null, IntPtr.Zero);
        }


//调用方法
 public void HtmlToImage(string url,string savePath)
    {
        string nowDate = DateTime.Now.ToString("yyyyMMddhhmmss");
        Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail(url, 390, 400, 590, 600);
        MemoryStream ms = new MemoryStream();
        m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);//JPG、GIF、PNG等均可 bmp和png清晰度高,bmp几乎不压缩 
        byte[] buff = ms.ToArray();
        System.Drawing.Image.FromStream(ms).Save(System.Web.HttpContext.Current.Server.MapPath(savePath));//"~/Manage/UpFile/Images/" + nowDate + ".JPG"
        ms.Dispose();
    }

Selenium提供了多种方法来进行浏览器截图。其中一种方法是使用`save_screenshot(filename)`方法来截取当前屏幕截图,并将其保存为指定文件。可以通过指定保存路径或图片文件名来保存截图。 另一种方法是使用`get_screenshot_as_base64()`方法来获取当前屏幕截图的base64编码字符串。这可以用于将截图以字符串的形式进行处理或传输。 还有一种方法是使用`get_screenshot_as_file(filename)`方法来获取当前截图,并使用完整的路径保存。这可以将截图保存到指定路径下的文件中。 另外,还可以使用`get_screenshot_as_png()`方法来获取当前截图的二进制文件数据。这可以用于进一步处理或保存截图。 下面是一个示例代码,演示了如何使用`save_screenshot`方法来截取当前屏幕截图,并保存在当前路径下的文件中。 ```python from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("https://www.baidu.com/") sleep(1) element = driver.find_element_by_id("kw") element.send_keys("自动化测试") sleep(1) driver.save_screenshot("baidu.png") sleep(2) driver.quit() ``` 另外,如果需要将截图的文件名设置为当前时间,可以使用以下代码示例。 ```python from selenium import webdriver from time import sleep, strftime, localtime, time driver = webdriver.Chrome() driver.get("https://www.baidu.com/") sleep(1) element = driver.find_element_by_id("kw") element.send_keys("自动化测试") sleep(1) file_name = strftime("%Y%m%d-%H%M%S", localtime(time())) + ".png" driver.save_screenshot(file_name) sleep(2) driver.quit() ``` 这样,您可以根据需要使用Selenium进行浏览器截图,并根据实际情况选择适合的方法和保存方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Selenium屏幕截图教程](https://blog.csdn.net/m0_61655732/article/details/121001776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Selenium 浏览器驱动合集](https://download.csdn.net/download/ning13481193737/9876364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值