天天看點

使用.net 和Selenium模拟百度登入

在上篇學習Selenium在.net上的使用後,隻是簡單了解了這些技術,做了個小demo,并不夠過瘾,今天我們使用這項web自動化技術來模拟下百度登入。

關于引用這些sdk等我就不再寫出來了,如果遇到不懂的就請浏覽我上篇文章.net下使用Selenium、PhantomJS。下面我們來濾下模拟登入的思路。

第一步:

我們打開百度網址,檢視登入按鈕的dom元素,如下圖;

使用.net 和Selenium模拟百度登入
第二步:

選擇操作登入按鈕的單擊事件,這時處理一下程式休息幾秒;

第三步:

彈出登入按鈕的對話框,選擇使用者名登入,同樣也是操作其dom元素;

使用.net 和Selenium模拟百度登入
第四步:

選擇使用者和密碼,登入按鈕的dom元素(這裡的登入按鈕式立即登入,前面的登入是彈出登入窗體)

使用.net 和Selenium模拟百度登入

很簡單,大體思路就是這樣,下面我們上完整的代碼;

{
static void Main(string[] args)
        {
var url = "https://www.baidu.com";
var driver1 = new PhantomJSDriver(GetPhantomJSDriverService());
            driver1.Navigate().GoToUrl(url);
var login = driver1.FindElement(By.LinkText("登入"));
            login.Click();
            Console.WriteLine("------------------------");
            Console.WriteLine(driver1.PageSource);
            Console.WriteLine("------------------------");
            Thread.Sleep(8000);
            IWebElement e = driver1.FindElement(By.LinkText("使用者名登入"));
if (e != null)
            {
                e.Click();
            }
            driver1.FindElement(By.Id("TANGRAM__PSP_10__userName")).SendKeys("[email protected]");
            driver1.FindElement(By.Id("TANGRAM__PSP_10__password")).SendKeys("123456");
            driver1.FindElement(By.Id("TANGRAM__PSP_10__submit")).Click();           
            Console.Read();
        }
private static PhantomJSDriverService GetPhantomJSDriverService()
        {
            PhantomJSDriverService pds = PhantomJSDriverService.CreateDefaultService();
//設定代理伺服器位址            
//pds.Proxy = $"{ip}:{port}";  
//設定代理伺服器認證資訊           
//pds.ProxyAuthentication = GetProxyAuthorization();
return pds;
        }
    }           

最後,關于登入後的截圖資訊我這裡就不展示了,值得注意的就是dom元素的操作,一定要選擇正确,如果你登入了百度賬号還選擇去登入這時的dom元素操作肯定會找不到。

繼續閱讀