新聞中心
介紹:
創(chuàng)新互聯(lián)公司主營(yíng)荷塘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),荷塘h5小程序開發(fā)搭建,荷塘網(wǎng)站營(yíng)銷推廣歡迎荷塘等地區(qū)企業(yè)咨詢
Selenium 是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
利用它可以驅(qū)動(dòng)瀏覽器執(zhí)行特定的動(dòng)作,如點(diǎn)擊、下拉等操作,同時(shí)還可以獲取瀏覽器當(dāng)前呈現(xiàn)的頁(yè)面的源代碼 ,做到可見即可爬。
所以Selenium現(xiàn)在被廣泛用于Python爬蟲。查了下資料,發(fā)現(xiàn)這個(gè)工具確實(shí)強(qiáng)大,最重要的是,C#也是可以調(diào)用的。
官方支持Java,C#,Python,Ruby,PHP,Perl,Javascript等語言
Selenium使用Java開發(fā),項(xiàng)目地址https://github.com/SeleniumHQ/selenium
使用Selenium:
1、我們新建一個(gè)C#控制臺(tái)程序
2、使用Nuget搜索以下依賴庫(kù)
需要引用的核心庫(kù)是Selenium.RC,Selenium.Support,Selenium.WebDriver
然后再需要引用 瀏覽器驅(qū)動(dòng)庫(kù),這里我以IE瀏覽器為例,Chrome使用方式跟IE是一樣的,程序包名稱為Selenium.WebDriver.ChromeDriver。
3、在Main函數(shù)中輸入以下代碼
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); } }
運(yùn)行,會(huì)彈出IE瀏覽器,網(wǎng)頁(yè)加載完成后,瀏覽器會(huì)自動(dòng)關(guān)閉。控制臺(tái)輸入結(jié)果如下
這樣我們就可以輕松的獲取動(dòng)態(tài)渲染頁(yè)面的源碼。
基本用法:
這里我以https://technet-info.com/Main.aspx這個(gè)頁(yè)面來演示。
頁(yè)面源碼如下
Welcome To Technet-Info : Personal Gallery
通過id獲取元素
//by id var byID = driver.FindElement(By.Id("cards"));
通過類名獲取元素
//by class name var byClassName = driver.FindElements(By.ClassName("menu"));
通過標(biāo)簽名獲取元素
//by tag name var byTagName = driver.FindElement(By.TagName("iframe"));
通過名字獲取元素
var byName = driver.FindElement(By.Name("__VIEWSTATE"));
通過鏈接文本獲取元素
//by linked text //linkedtext> var byLinkText = driver.FindElement(By.LinkText("linkedtext"));
通過部分鏈接文本獲取元素
//by partial link text //linkedtext> var byPartialLinkText = driver.FindElement(By.PartialLinkText("text"));
通過CSS選擇器獲取元素
//by css var byCss = driver.FindElement(By.CssSelector("#header .content .logo"));
通過XPath來獲取元素(XPath使用可以參考上一篇博客)
//by xpath var byXPath = driver.FindElements(By.XPath("http://div"));
執(zhí)行JS
//execute javascript var jsReturnValue = (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript("jsfunname");
獲取元素的值和屬性
//get element value and attribute value var byIDText = byID.Text; var byIDAttributeText = byID.GetAttribute("id");
模擬鼠標(biāo)點(diǎn)擊元素
//click driver.FindElement(By.Id("copyright")).Click();
頁(yè)面導(dǎo)航
//Navigation driver.Navigate().Forward(); driver.Navigate().Back();
拖拽操作(可以實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼的驗(yàn)證)
//Drag And Drop var element = driver.FindElement(By.Name("source")); IWebElement target = driver.FindElement(By.Name("target")); (new Actions(driver)).DragAndDrop(element, target).Perform();
示例代碼
到此這篇關(guān)于C#使用Selenium的實(shí)現(xiàn)代碼的文章就介紹到這了,更多相關(guān)C#使用Selenium內(nèi)容請(qǐng)搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!
分享名稱:C#使用Selenium的實(shí)現(xiàn)代碼
地址分享:http://ef60e0e.cn/article/gdjddj.html