首页 / C# / C#使用Selenium
C#使用Selenium
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#使用Selenium,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5024字,纯文字阅读大概需要8分钟。
内容图文
![C#使用Selenium](/upload/InfoBanner/zyjiaocheng/630/9b5eb3b173ea4524b81c693c758fe79e.jpg)
介绍:
Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码 ,做到可见即可爬。
所以Selenium现在被广泛用于Python爬虫。查了下资料,发现这个工具确实强大,最重要的是,C#也是可以调用的。
官方支持Java,C#,Python,Ruby,PHP,Perl,Javascript等语言
使用Selenium:
1、我们新建一个C#控制台程序
2、使用Nuget搜索以下依赖库
需要引用的核心库是Selenium.RC,Selenium.Support,Selenium.WebDriver
然后再需要引用 浏览器驱动库,这里我以IE浏览器为例,Chrome使用方式跟IE是一样的,程序包名称为Selenium.WebDriver.ChromeDriver。
3、在Main函数中输入以下代码
static void Main(string[] args) { using (IWebDriver driver = new OpenQA.Selenium.IE.InternetExplorerDriver()) { driver.Navigate().GoToUrl("http://www.baidu.com"); //driver.Url = "http://www.baidu.com"是一样的 var source = driver.PageSource; Console.WriteLine(source); } }
运行,会弹出IE浏览器,网页加载完成后,浏览器会自动关闭。控制台输入结果如下
这样我们就可以轻松的获取动态渲染页面的源码。
基本用法:
这里我以https://technet-info.com/Main.aspx这个页面来演示。
页面源码如下
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="description" content="Wandering the number of windows, stayed in the number of hotels, will feel that separation is not wronged, the feelings are used to browse or used to collect, so that the day had a memorable day" /><title> Welcome To Technet-Info : Personal Gallery </title><link rel="shortcut icon" type="image/x-icon" href="technet.ico" media="screen" /><link rel="stylesheet" href="Css/MainCss.css" /><link rel="stylesheet" href="Css/screen.css" /> <style> #footer{ display: flex; justify-content: center; align-items: center; position: fixed; bottom: 0; left: 0; width: 100%; } </style> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/easySlider1.7.js"></script> <script type="text/javascript"> $(document).ready(function () { $("#slider").easySlider({ auto: true, pause:3000, continuous: true, numeric: true }); }); </script> </head> <body> <form method="post" action="./Main.aspx" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTQyNjI2MTkwNmRkt331eyucv2SBluj0E2d+0haGV4exFHWtGQkZhNBnpHE=" /> </div> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="202EA31B" /> </div> <div id="main"> <div id="header"> <div class="musicarea"> <iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=150 height=52 src="http://music.163.com/outchain/player?type=0&id=516657278&auto=1&height=32"></iframe> </div> <div class="content"> <div class="logo"> <div class="logo_img"> <div class="logo_img"></div> </div> <div class="logo_txt"> <div style="height: 50px;"> <p></p> </div> <div style="height: 50px;"> <p>我的freetime</p> </div> </div> </div> <div class="menu"> </div> </div> <div id="content"> </div> <div id="cards"> </div> <div id="pin"> </div> </div> <div id="footer"> <div id="copyright"> <p style="margin: 3px"> <a href="http://www.miitbeian.gov.cn/">湘ICP备16012349号</a> <span>|</span> <span>Copyright © 2016, www.technet-info.com, All rights reserved.</span> </p> <p><a href="mailto:zhaotianff@163.com">Email:zhaotianff@163.com</a></p> </div> </div> </div> </form> </body> </html>
通过id获取元素
1 //by id 2 var byID = driver.FindElement(By.Id("cards"));
通过类名获取元素
1 //by class name 2 var byClassName = driver.FindElements(By.ClassName("menu"));
通过标签名获取元素
1 //by tag name 2 var byTagName = driver.FindElement(By.TagName("iframe"));
通过名字获取元素
1 var byName = driver.FindElement(By.Name("__VIEWSTATE"));
通过链接文本获取元素
1 //by linked text 2 //<a href="http://www.google.com">linkedtext</a>> 3 var byLinkText = driver.FindElement(By.LinkText("linkedtext"));
通过部分链接文本获取元素
1 //by partial link text 2 //<a href="http://www.google.com">linkedtext</a>> 3 var byPartialLinkText = driver.FindElement(By.PartialLinkText("text"));
通过CSS选择器获取元素
1 //by css 2 var byCss = driver.FindElement(By.CssSelector("#header .content .logo"));
通过XPath来获取元素(XPath使用可以参考上一篇博客)
1 //by xpath 2 var byXPath = driver.FindElements(By.XPath("//div"));
执行JS
1 //execute javascript 2 var jsReturnValue = (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript("jsfunname");
获取元素的值和属性
1 //get element value and attribute value 2 var byIDText = byID.Text; 3 var byIDAttributeText = byID.GetAttribute("id");
模拟鼠标点击元素
1 //click 2 driver.FindElement(By.Id("copyright")).Click();
页面导航
1 //Navigation 2 driver.Navigate().Forward(); 3 driver.Navigate().Back();
拖拽操作(可以实现滑动验证码的验证)
1 //Drag And Drop 2 var element = driver.FindElement(By.Name("source")); 3 IWebElement target = driver.FindElement(By.Name("target")); 4 (new Actions(driver)).DragAndDrop(element, target).Perform();
内容总结
以上是互联网集市为您收集整理的C#使用Selenium全部内容,希望文章能够帮你解决C#使用Selenium所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。