使用.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("1248@qq.com");
            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元素操作肯定会找不到。

上一篇:使用Redis有哪些好处?redis相比memcached有哪些优势?


下一篇:.net下使用Selenium、PhantomJS