Design

Design
asp.net mvc
顯示具有 Selenium 標籤的文章。 顯示所有文章
顯示具有 Selenium 標籤的文章。 顯示所有文章

2018年10月30日 星期二

在winform內鑲Selenium控制

最近研究出可以在winform內鑲瀏覽器用Selenium控制的方法,這樣就不用每次導出視窗 造成一些問題 也比較美觀,主要方法是透過CefSharp內核把chrome鑲入winform,ChromiumWebBrowser的RemoteDebuggingPort建立個本個遠端路徑,再透過 Selenium ChromeOptions的DebuggerAddress 去做畫面的顯示

程式碼如下
 public partial class Form1 : Form
    {
        private readonly ChromiumWebBrowser browser;
        private static readonly bool DebuggingSubProcess = Debugger.IsAttached;

        private ISelenium selenium;
        private StringBuilder verificationErrors;

        public Form1()
        {
            InitializeComponent();

            var settings = new CefSettings();
            settings.RemoteDebuggingPort = 8088;
            settings.IgnoreCertificateErrors = true;
            Cef.Initialize(settings);
            browser = new ChromiumWebBrowser(url)
            {
                Dock = DockStyle.Fill,
            };
            browser.CreateControl();
            this.Controls.Add(browser);
        }

        public static void GO()
        {
            var driverService = ChromeDriverService.CreateDefaultService();
            driverService.HideCommandPromptWindow = true;

            ChromeOptions options = new ChromeOptions();
            options.DebuggerAddress = "127.0.0.1:8088";
            options.AddArguments("--enable-logging");
            using (var driver = new ChromeDriver(driverService, options))
            {
               //doSomething
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            GO();
        }
    }

2018年9月19日 星期三

Selenium C# 簡單運用

Selenium 是為瀏覽器自動化(Browser Automation)需求所設計的一套工具集合,讓程式可以直接驅動瀏覽器進行各種網站操作。
應用的範圍滿廣泛的,除了自動化測試以外還可以當做爬蟲使用.
請NuGet 以下兩項
Selenium.Support
Selenium.WebDriver

底下簡單做個google搜訊範例 很直覺的啟動driver導頁到google 找search元件 輸入Submit 整體來說沒什麼難度 較進階的用法 會需要用到等待頁面加載完或是一些瀏覽器的問題跟操作 基本上大同小異

    using (var driver = new ChromeDriver())
            {
                driver.Navigate().GoToUrl("https://www.google.com.tw/");
                var search = driver.FindElementById("lst-ib");
                search.SendKeys("hi");
                search.Submit();
            }


我自己寫滿多的東西的,覺得目前來說各方面支援度都很夠用 推薦