利用Selenium自动登录CSDN实例
Selenium是一个自动化测试工具,可以自动唤起浏览器模拟一些用户行为,具体说明可以看官网 https://www.seleniumhq.org/。
本文用.net core类库通过xunit来测试Selenium自动登录CSDN,使用visual studio 2019编写。
1、创建类库,通过Nuget安装xunit、selenium
2、自行搜索geckodriver下载,该程序用来驱动浏览器启动
3、代码如下
using Xunit; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; namespace XUnitTestProject1 { public class UnitTest1 { // <summary> /// 自动登录CSDN /// </summary> [Fact(DisplayName = "Visit.Cnblogs")] public void Visit_Cnblogs() {
//geckodriver文件的存放路径 FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:\geckodriver", "geckodriver.exe");
//火狐浏览器的执行文件路径,默认支持火狐,支持chrome等其他浏览器需要下载相应的类库驱动 service.FirefoxBinaryPath = @"C:\Program Files\Mozilla Firefox\firefox.exe"; IWebDriver driver = new FirefoxDriver(service); driver.Url = "https://passport.csdn.net/login";
//打开登录页面默认是微信登录,找到账号登录并点击 driver.FindElement(By.XPath(".//div[@class='main-select']/ul/li[2]")).Click();
//CSDN的用户名和密码 dynamic loginUser = new { UserName = "", UserPwd = "" };
//找到用户名和密码填入表单并且填充数据 driver.FindElement(By.Id("all")).SendKeys(loginUser.UserName); driver.FindElement(By.Id("password-number")).SendKeys(loginUser.UserPwd);
//找到登录按钮并点击 driver.FindElement(By.ClassName("btn-primary")).Click();
//程序执行完需要释放,不然会有进程遗留占用某个端口 service.Dispose(); driver.Dispose(); }
}
}