在上篇学习Selenium在.net上的使用后,只是简单了解了这些技术,做了个小demo,并不够过瘾,今天我们使用这项web自动化技术来模拟下百度登录。
关于引用这些sdk等我就不再写出来了,如果遇到不懂的就请浏览我上篇文章.net下使用Selenium、PhantomJS。下面我们来滤下模拟登录的思路。
第一步:
我们打开百度网址,查看登录按钮的dom元素,如下图;
第二步:
选择操作登录按钮的单击事件,这时处理一下程序休息几秒;
第三步:
弹出登录按钮的对话框,选择用户名登录,同样也是操作其dom元素;
第四步:
选择用户和密码,登录按钮的dom元素(这里的登录按钮式立即登录,前面的登录是弹出登录窗体)
很简单,大体思路就是这样,下面我们上完整的代码;
{
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元素操作肯定会找不到。