乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      dotnet使用Selenium執(zhí)行自動(dòng)化任務(wù)

       昵稱(chēng)56559370 2018-10-12

      如果要做百度文庫(kù),百度貼吧,百度知道簽到,你,會(huì)怎么做?前不久我還會(huì)覺(jué)得這好像太麻煩了,now,soeasy。

      自動(dòng)化測(cè)試工具:Selenium

      Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括 ,Chrome,Firefox,IE,PhantomJS(一個(gè)基于webkit內(nèi)核的無(wú)界面瀏覽器)等。

      在.net framework下Selenium的使用

      1. 新建解決方案,控制臺(tái)項(xiàng)目
      2. 添加NuGet包:Selenium.WebDriver 3.5.1 Selenium.Support 3.5.1
      3. 通過(guò)NuGet下載Phantomjs或者手動(dòng)下載驅(qū)動(dòng),設(shè)置環(huán)境變量
        • Selenium.PhantomJS.WebDriver //無(wú)頭瀏覽器 無(wú)界面
        • Selenium.Chrome.WebDriver //需要下載瀏覽器 ,運(yùn)行時(shí)會(huì)打開(kāi)瀏覽器
        • Selenium.Firefox.WebDriver //需要下載瀏覽器
          圖片

      簡(jiǎn)單使用示例

      使用PhantomJS驅(qū)動(dòng)保存百度首頁(yè)截圖

          var driver = new PhantomJSDriver();//創(chuàng)建瀏覽器
          driver.Navigate().GoToUrl("http://www.baidu.com");//打開(kāi)百度
          //截圖保存
          Screenshot screenshot = ((ITakesScreenshot)driver).GetScreenshot();
          screenshot.SaveAsFile("baidu.jpg", ScreenshotImageFormat.Jpeg);
          //退出
          driver.Quit();

      點(diǎn)擊百度搜索然后截圖

          var driver = new PhantomJSDriver();//創(chuàng)建瀏覽器
          driver.Navigate().GoToUrl("http://www.baidu.com");//打開(kāi)百度
          driver.FindElement(By.Id("kw")).SendKeys("Selenium");
          driver.FindElement(By.Id("su")).Click();
          Thread.Sleep(3000);//搜索結(jié)果顯示出來(lái)再接圖
          //截圖保存
          Screenshot screenshot = ((ITakesScreenshot)driver).GetScreenshot();
          screenshot.SaveAsFile("baidu.jpg", ScreenshotImageFormat.Jpeg);
          //退出
          driver.Quit();

      登錄博客園發(fā)個(gè)閃存

      源碼地址:https:///u/yimocoding/p/WeDemo/git/tree/SeleniumDemo/SeleniumDemo

      百度文庫(kù),百度貼吧,百度知道簽到

      要是用模擬請(qǐng)求的方式得累死個(gè)人。

        static void 百度簽到()
        {
            dynamic loginUser = new
            {
                UserName = "yimo",
                UserPwd = "123456"
            };
            var myDriver = new PhantomJSDriver();//創(chuàng)建瀏覽器
            var defTask = new List<string>() { "文庫(kù)", "貼吧", "知道" };
            const string _loginUrl = "https://passport.baidu.com/v2/?login";
            //跳轉(zhuǎn)頁(yè)面
            myDriver.Navigate().GoToUrl(_loginUrl);
            myDriver.FindElement(By.Id("TANGRAM__PSP_3__userName")).SendKeys(loginUser.UserName);
            myDriver.FindElement(By.Id("TANGRAM__PSP_3__password")).SendKeys(loginUser.UserPwd);
            myDriver.FindElement(By.Id("TANGRAM__PSP_3__submit")).Click();
      
            Console.WriteLine(myDriver.Title);
      
            if (defTask.Contains("文庫(kù)"))
            {
                const string _wkSignUrl = "https://wenku.baidu.com/task/browse/daily";
                Console.WriteLine($"開(kāi)始百度文庫(kù)簽到");
                myDriver.Navigate().GoToUrl(_wkSignUrl);
                myDriver.ExecScript("$('.bg').remove();$('.g-btn-pass').click();");
                Console.WriteLine("百度文庫(kù)簽到完成");
                Thread.Sleep(1000);
                myDriver.SaveImg("文庫(kù)簽到.png");
            }
            if (defTask.Contains("貼吧"))
            {
                const string _tiebaUrl = "https://tieba.baidu.com/index.html";
                Console.WriteLine("開(kāi)始百度貼吧簽到");
                myDriver.Navigate().GoToUrl(_tiebaUrl);
                myDriver.FindElement(By.ClassName("onekey_btn")).Click();
                myDriver.FindElement(By.ClassName("sign_btn_nonmember")).Click();
                Console.WriteLine("百度貼吧簽到完成");
                Thread.Sleep(1000);
                myDriver.SaveImg("貼吧簽到.png");
            }
            if (defTask.Contains("知道"))
            {
                const string _tiebaUrl = "https://zhidao.baidu.com/";
                Console.WriteLine("開(kāi)始百度知道簽到");
                myDriver.Navigate().GoToUrl(_tiebaUrl);
                myDriver.FindElement(By.ClassName("go-sign-in")).Click();
                myDriver.FindElement(By.ClassName("sign-in-btn")).Click();
                Console.WriteLine("百度知道簽到完成");
                Thread.Sleep(1000);
                myDriver.SaveImg("知道簽到.png");
            }
            //退出
            myDriver.Quit();
        }

      淘寶領(lǐng)取淘金幣

        static void 淘金幣領(lǐng)取()
        {
            dynamic loginUser = new
            {
                UserName = "yimo",
                UserPwd = "123456"
            };
            var myDriver = new PhantomJSDriver();//創(chuàng)建瀏覽器
            const string _loginUrl = "https://login.taobao.com/member/login.jhtml";
            const string _taoUrl = "https://taojinbi.taobao.com/index.htm";
            //跳轉(zhuǎn)頁(yè)面
            myDriver.Navigate().GoToUrl(_loginUrl);
            //賬號(hào)登錄
            myDriver.FindElement(By.Id("J_Quick2Static")).Click();
      
            myDriver.FindElement(By.Id("TPL_username_1")).SendKeys(loginUser.UserName);
            myDriver.FindElement(By.Id("TPL_password_1")).SendKeys(loginUser.UserPwd);
            myDriver.FindElement(By.Id("J_SubmitStatic")).Click();
            myDriver.Navigate().GoToUrl(_taoUrl);
      
            myDriver.FindElement(By.ClassName("J_GoTodayBtn")).Click();
            //滑動(dòng)驗(yàn)證碼
            Actions action = new Actions(driver);
            var source = driver.FindElement(By.ClassName("btn_slide"));
            if (source == null)
            {
                return;
            }
            action.ClickAndHold(source).MoveByOffset(300,0);
            action.MoveToElement(source).Release();
            IAction actions = action.Build();
            actions.Perform();
        }

      Ctrl+F5,截圖保存成功
      圖片

      常用接口

      var driver=new PhantomJSDriver();//驅(qū)動(dòng)實(shí)例

      1. INavigation接口: 瀏覽器導(dǎo)航接口(前進(jìn),后退,刷新),接口實(shí)例:driver.Navigate()
      2. IOptions接口: 瀏覽器信息接口(Cookie,設(shè)置窗口等操作),接口實(shí)例:driver.Manage()
      3. IWebElement 通過(guò)driver.FindElement()篩選獲取到元素信息(Text等),可以對(duì)元素賦值(SendKeys())單擊(Click())等操作

      常用操作

      • 窗口最大化:driver.Manage().Window.Maximize();
      • Cookie操作接口獲取:driver.Manage().Cookies
      • 執(zhí)行js:((IJavaScriptExecutor)driver).ExecuteScript("document.body.innerHTML='Selenium'");
      • 截圖:((ITakesScreenshot)driver).GetScreenshot().SaveAsFile("保存路徑.png", ScreenshotImageFormat.Png);
      • 拖動(dòng),文章介紹參考
        var driver = new PhantomJSDriver();
        By by=By.ClassName("btn_slide");
        int x=300,y=0
        Actions action = new Actions(driver);
        var source = driver.FindElement(by);
        if (source == null)
        {
            return;
        }
        action.ClickAndHold(source).MoveByOffset(x, y);
        action.MoveToElement(source).Release();
        IAction actions = action.Build();
        actions.Perform();

      立個(gè)flag

      下一篇:SeleniumNetCoreDemo+travis-ci+Github
      Demo下載:https:///u/yimocoding/p/WeDemo/git/tree/SeleniumDemo
      clone命令:git clone https://git./yimocoding/WeDemo.git -b SeleniumDemo

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多