调教肉文小说-国产成本人片免费av-空姐av种子无码-在线观看免费午夜视频-综合久久精品激情-国产成人丝袜视频在线观看软件-大芭区三区四区无码-啊啊好爽啊啊插啊用力啊啊-wanch视频网-国产精品成人a免费观看


系列目錄 <https://www.cnblogs.com/tylerzhou/p/11204826.html>


通過前面的單元測(cè)試,我們能夠保證項(xiàng)目的基本模塊功能邏輯是正常的,通過集成測(cè)試能夠保證接口的請(qǐng)求是正常的.然而最終項(xiàng)目交付我們還需要對(duì)項(xiàng)目進(jìn)行頁面的行為進(jìn)行測(cè)試,比如頁面布局是否正常,按鈕是否能點(diǎn)擊,點(diǎn)擊后執(zhí)行的動(dòng)作是否正確,鏈接是否正常等功能進(jìn)行測(cè)試,表單提交是否返回正確結(jié)果等.這些都是一些墨盒測(cè)試,一般是由專門測(cè)試人員來完成,然而隨著web的發(fā)展,各種自動(dòng)化工具越來越完善,有一些頁面功能的測(cè)試也可以由程序員來編寫自動(dòng)測(cè)試代碼完成.這里主要結(jié)合Selenium來介紹如何完成頁面行為的測(cè)試.

點(diǎn)擊按鈕

前面我們已經(jīng)講到如何安裝和簡單使用Selenium,這里不再介紹.下面介紹一下如何使用Selenium來觸發(fā)一個(gè)按鈕點(diǎn)擊事件.

首先我們?cè)贖elloWorldController里新建Action FormTest(也可以在其它控制器里創(chuàng)建,這里隨意),代碼如下
public IActionResult FormTest() { return View(); } [HttpPost] public
IActionResult FormTest(string name) { return Content(name); }
以上代碼非常簡單,我們創(chuàng)建FormTest并請(qǐng)求自己,然后把請(qǐng)求的數(shù)據(jù)返回

我們?yōu)檫@個(gè)Action新建一個(gè)頁面,并且引入jquery.

頁面代碼如下
<!DOCTYPE html> <html> <head> <meta name="viewport"
content="width=device-width" /> <script src="~/js/JQueryt.js"></script>
<title>FormTest</title> </head> <body> <form method="post" id="frm1"> <input
id="btn1" type="button" value="點(diǎn)我"/> </form> <script>
$("#btn1").click(function() { alert("hello,world"); }); </script> </body>
</html>
這個(gè)頁面里有一個(gè)btn1,如果我們點(diǎn)擊它就會(huì)彈出一個(gè)alert框.
測(cè)試代碼如下
[Fact] public void ClickTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var element =
driver.FindElement(By.Id("btn1")); element.Click(); }
我們先通過id找到這個(gè)按鈕,然后令它觸發(fā)一個(gè)click事件.我們運(yùn)行測(cè)試



我們并沒有手動(dòng)點(diǎn)擊按鈕,但是彈出了上面的彈框,說明點(diǎn)擊事件正確觸發(fā)了.

自動(dòng)填寫表單


通過以上代碼我們可以看到,觸發(fā)一個(gè)按鈕點(diǎn)擊事件在Selenium是非常容易的,這對(duì)我們自動(dòng)模擬表單提交提供了大大的便利.Selenium還可以模擬自動(dòng)填寫表單,思路和上面是一樣的,首先獲取到要填寫的表單,然后模擬填寫內(nèi)容.下面我們改動(dòng)一下網(wǎng)頁代碼,在form里面添加一個(gè)簡單的表單
<input type="text" name="name"/>
測(cè)試代碼改為如下:
[Fact] public void ClickTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var input =
driver.FindElement(By.Name("name")); input.SendKeys("hello,world"); }
以上代通過FindElement By.Name獲取到頁面里name為name的元素(聽起來有點(diǎn)繞),然后通過SendKeys方法模擬向指定元素填寫內(nèi)容



頁面的開以后便會(huì)自動(dòng)填寫以上內(nèi)容.這樣我們就可以自動(dòng)填寫內(nèi)容,然后點(diǎn)擊點(diǎn)我按鈕提交表單了.

自動(dòng)填寫表單,然后提交

綜合以上我們模擬一次自動(dòng)填寫表單,然后提交的動(dòng)作.

下面貼出修改后的完整代碼.
<html> <head> <meta name="viewport" content="width=device-width" /> <script
src="~/js/JQueryt.js"></script> <title>FormTest</title> </head> <body> <form
method="post" id="frm1"> <input type="text" name="name"/> <input id="btn1"
type="button" value="點(diǎn)我"/> </form> <script> $("#btn1").click(function() {
$.ajax({ type: "POST", url: "/HelloWorld/FormTest", data:
$("#frm1").serialize(), dataType: "text", success: function (response) {
alert("返回的數(shù)據(jù)是:"+response); } }); }); </script> </body> </html>
這次當(dāng)按鈕點(diǎn)擊以后我們觸發(fā)一次ajax提交,然后alert服務(wù)器返回的數(shù)據(jù)

測(cè)試代碼如下:
[Fact] public void ClickTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var input =
driver.FindElement(By.Name("name")); input.SendKeys("hello,world"); var btn =
driver.FindElement(By.Id("btn1")); btn.Click(); }
上面的代碼執(zhí)行了兩個(gè)動(dòng)作,第一是模擬填寫表單數(shù)據(jù),第二是點(diǎn)擊按鈕,提交表單.
我們運(yùn)行測(cè)試代碼,看一下結(jié)果



可以看到表單自動(dòng)提交了.

獲取Alert框


我們前面都是通過截圖來看指定的行為是否產(chǎn)生了正確的結(jié)果,然而在自動(dòng)化環(huán)境中這是不能接受的,更多的時(shí)候我們是在無頭模式下進(jìn)行測(cè)試,然后自動(dòng)獲取行為產(chǎn)生的結(jié)果,然后斷言此結(jié)果是否是期待的一個(gè)值.下面我們改造以上代碼,自動(dòng)獲致到Alert框并取得它里面的值,然后斷言這個(gè)值是我們想要的值.
[Fact] public void ClickTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var input =
driver.FindElement(By.Name("name")); input.SendKeys("hello,world"); var btn =
driver.FindElement(By.Id("btn1")); btn.Click(); Thread.Sleep(3000); var alert =
driver.SwitchTo().Alert(); var txt = alert.Text;
Assert.Equal("返回的數(shù)據(jù)是:hello,world", txt); }
以上代碼的關(guān)鍵是通過SwitchTo獲取到Alert框,進(jìn)而獲取到它的Text值,我們?cè)赼jax請(qǐng)求成功的處理是"返回的數(shù)據(jù)是:"
+提交的值,因此如果正常則以上代碼會(huì)執(zhí)行成功.這樣我們就不用守著頁面查看結(jié)果了.

獲取自定義彈出層


做到以上并沒有成事大吉,實(shí)際業(yè)務(wù)中我們很少使用瀏覽器自帶的Alert,而是使用一些第三方的組件,因?yàn)樵鶤lert用戶體驗(yàn)實(shí)在不是太好,只能在測(cè)試的時(shí)候玩一玩還可以.由于第三方組件實(shí)現(xiàn)方式不同,這就導(dǎo)致獲取的方法也不一樣,我們還要根據(jù)具體情況而定.下面我們結(jié)合layui的alert框來介紹一下如何來獲取它里面的內(nèi)容.

我們?cè)陧?xiàng)目中引入layui,然后把a(bǔ)jax請(qǐng)求成功后的alert換成layui的alert,代碼如下
<html> <head> <meta name="viewport" content="width=device-width" /> <link
href="~/lib/layui/css/layui.css" rel="stylesheet" /> <script
src="~/lib/jquery/dist/jquery.js"></script> <script
src="~/lib/layui/layui.all.js"></script> <title>FormTest</title> </head> <body>
<form method="post" id="frm1"> <input type="text" name="name"/> <input
id="btn1" type="button" value="點(diǎn)我"/> </form> <script> var layer = layui.layer;
$("#btn1").click(function() { $.ajax({ type: "POST", url:
"/HelloWorld/FormTest", data: $("#frm1").serialize(), dataType: "text",
success: function (response) { layer.alert("返回的數(shù)據(jù)是:" + response); } }); });
</script> </body> </html>
由于這是一個(gè)自定義alert,我們先運(yùn)行一下項(xiàng)目,然后手動(dòng)點(diǎn)擊下按鈕,等alert框出來以后我們分析一下它的結(jié)構(gòu):




我們可以看到,layui的這個(gè)alert框?qū)嶋H上是一個(gè)div層,由于id是動(dòng)態(tài)生成的,因此我們不能使用,但是它的class是固定的,它包含了兩個(gè)class元素,內(nèi)部彈出的具體內(nèi)容則是藍(lán)色高亮的那個(gè)div里面的內(nèi)容,它的class也是固定的,我們這里可以使用class獲取到它們.

下面看測(cè)試代碼:
[Fact] public void ClickTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var input =
driver.FindElement(By.Name("name")); input.SendKeys("hello,world"); var btn =
driver.FindElement(By.Id("btn1")); btn.Click(); Thread.Sleep(3000); var layer =
driver.FindElement(By.ClassName("layui-layer-dialog")); var content =
layer.FindElement(By.ClassName("layui-layer-content")); var text =
content.Text; Assert.Equal("返回的數(shù)據(jù)是:hello,world", text); }

產(chǎn)生我們通過class獲取到這個(gè)彈出層元素,然后再通過它找到它的子元素(包含彈出信息文字的div).這里的sleep前面說過,由于js是異步執(zhí)行的,因此點(diǎn)擊后并不能馬上獲取到結(jié)果,這里我們sleep一下.


需要特別注意的是,通過By.ClassName獲取到的元素可能不止一下,默認(rèn)取得的是獲取到的第一個(gè),這在有些時(shí)候可能并不能滿足我們的要求(這里代碼比較少,發(fā)生沖突的機(jī)率比較小),實(shí)際工作中我們一定要想辦法保證元素的惟一性,也就是獲取到的元素確定是我們所需要的.

還有一點(diǎn)需要注意的是第三方的組件實(shí)現(xiàn)方式可能會(huì)改變導(dǎo)致獲取不到內(nèi)容,這確實(shí)沒有比較好的解決方案.


實(shí)際工作中可能還會(huì)有更為復(fù)雜的行為要去模擬,比如說彈出層是一個(gè)帶有tab的面板,我們需要切換到特定的tab去尋找想要的內(nèi)容,由于這些內(nèi)容都是非標(biāo)準(zhǔn)實(shí)現(xiàn),因此模擬的難度根據(jù)采用框架的復(fù)雜度而定,有時(shí)候可能特別復(fù)雜,但是只要靜下心來分析分析,總是能找到解決方案的.


前面講到了如何填寫表單,點(diǎn)擊按鈕提交表單以及獲取彈出層內(nèi)容.下面講解一下如何獲取鏈接,彈出頁面,iframe以及高級(jí)行為.這里仍然是以實(shí)際應(yīng)該為主導(dǎo)講解一些最基本最常用的功能,并不求面面俱到,有興趣的同事可以查看官方文檔,第三方博客,書籍等獲取更多知識(shí).

鏈接行為測(cè)試

鏈接很多時(shí)候可以完成按鈕的功能,但是最常用的是跳到一個(gè)新的頁面,下面講一下如何獲取到新的頁面

我們?cè)谏瞎?jié)的頁面中添加一個(gè)a鏈接,代碼如下:
<a id="clk" href="http://www.baidu.com" target="_blank">飛往百度</a>
以上代碼很簡單,點(diǎn)擊一下a標(biāo)簽就會(huì)出現(xiàn)一個(gè)新的百度頁面,我們想要判斷一下是否正確打開了百度頁面,測(cè)試代碼如下:
[Fact] public void LinkClick() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var link =
driver.FindElement(By.Id("clk")); link.Click(); var hands =
driver.WindowHandles; var wind = driver.SwitchTo().Window(hands[1]); var title
= wind.Title; Assert.Equal("百度一下,你就知道", title); }

上面代碼主要的功能在于當(dāng)點(diǎn)擊鏈接以后通過driver.WindowHandles獲取到容器的句柄,需要說明的是這里的句柄并不是指針類型的句柄,而是一個(gè)字符串類類型的變量,我們可以通過它找到指定的窗口,下面部分通過SwitchTo切換到一個(gè)窗口(SwitchTo我們前面講到過),Window接收一個(gè)字符串類開的參數(shù),雖然提示字符說是窗口的標(biāo)題,實(shí)際上并不是,而是我們剛才獲取到的句柄,我們知道現(xiàn)在共有兩個(gè)窗口,百度窗口是后打開的,因此它的索引是是1.然后我們?cè)佾@取它的標(biāo)題,看看是不是"百度一下,
你就知道"


需要說明的是,以上我們雖然是通過索引獲取的百度窗口,這樣可能會(huì)因?yàn)槲恢们袚Q造成問題(這里強(qiáng)烈不建議手動(dòng)修改自動(dòng)過程中的行為,實(shí)際上真實(shí)的測(cè)試環(huán)境是無頭環(huán)境,因此這其實(shí)不是一個(gè)很大的問題),就上面的例子我們確實(shí)有辦法能惟一確定百度窗口,但是如果窗口過多想要不使用索引獲取到指定的窗口還是很困難的,這里強(qiáng)烈建議如果有打開非常多的窗口的復(fù)雜行為時(shí),把測(cè)試分成若干個(gè)測(cè)試,每個(gè)測(cè)試?yán)锏倪壿嬛淮蜷_少量窗口,這樣出現(xiàn)問題也更容易排查.

點(diǎn)擊時(shí)按下修改鍵

前面我們多次用到了模擬點(diǎn)擊事件,其實(shí)這也是實(shí)際項(xiàng)目中用的最多的,但是也不排除少數(shù)情況下會(huì)用到其它的按鍵,比如說拖拽,雙擊,ctrl+點(diǎn)擊等,


下面我們演示如何在百度首頁點(diǎn)擊百度新聞并在新頁面打開,我們知道百度首頁的新聞默認(rèn)是在本頁打開的,如果點(diǎn)擊鏈接時(shí)按下ctrl鍵則會(huì)在新頁面中打開.下面我們模擬ctrl+點(diǎn)擊這個(gè)行為
這里其實(shí)也很簡單,主要通過Actions封裝對(duì)象來觸發(fā)一系列動(dòng)作來達(dá)到我們的目的.

下面看測(cè)試代碼:
[Fact] public void LinkClick() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://www.baidu.com"; driver.Navigate(); var link =
driver.FindElement(By.LinkText("新聞")); Actions actions = new Actions(driver);
actions.KeyDown(Keys.LeftControl).Click(link).Build().Perform(); }

以上代碼主要是通過傳入driver對(duì)象構(gòu)造一個(gè)Actions類型對(duì)象,這個(gè)對(duì)象在調(diào)用build之前會(huì)一直返回自身,類似是是jQuery里的鏈?zhǔn)讲僮?這樣我們就可以連續(xù)執(zhí)行多個(gè)動(dòng)作.


下面的代碼我們先是調(diào)用actions對(duì)象的keyDown方法,然后傳入要按下的鍵,然后再調(diào)用點(diǎn)擊事件,最后調(diào)用Build方法終止鏈?zhǔn)秸{(diào)用,最后再執(zhí)行Perform執(zhí)行前面的操作.啟動(dòng)測(cè)試就會(huì)發(fā)現(xiàn)瀏覽器在新的頁面打開了百度新聞頁

上面用到了一個(gè)以前沒用到的選擇方法那就是By.LinkText,語義非常明確那就是根據(jù)鏈接的文本找到鏈接對(duì)象.

Iframe對(duì)象的獲取


我們知道Iframe對(duì)象的處理比較麻煩,里面是一個(gè)比較封裝的區(qū)域與外面通信過程比較麻煩,在selenium里它的處理也比較特殊,直接按照id或者其它特征獲取到它幾乎沒有任何作用,因?yàn)闊o法獲取到內(nèi)容元素,selenium是通過switchTo.Frame傳入獲取到的iframe對(duì)象對(duì)它進(jìn)行一層封裝,然后就能夠正常獲取到它內(nèi)部的元素了.

我們?cè)陧撁嫣砑右粋€(gè)簡單的iframe頁面,代碼如下
<iframe id="ifrm1" src="http://www.baidu.com"></iframe>
測(cè)試代碼如下
[Fact] public void FindIframe() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var ele =
driver.FindElement(By.Id("ifrm1")); var frm = driver.SwitchTo().Frame(ele); var
txt = frm.FindElement(By.LinkText("新聞")).Text; Assert.Equal("新聞", txt); }

以上代碼首先像獲取普通元素一樣獲取到這個(gè)iframe對(duì)象,然后通過SwitchTo.Frame把它傳入封裝成個(gè)frame對(duì)象,后面就可以獲取到它內(nèi)部的元素了.(iframe指向百度首頁,我們獲取到新聞鏈接)


然而實(shí)際項(xiàng)目中,往往我們并不自己去創(chuàng)建iframe,而是由一些第三方ui框架自動(dòng)創(chuàng)建的,框架生成的iframe要么沒有id,要么是動(dòng)態(tài)的,因此使用自動(dòng)生成元素的id要非常慎重,但是筆者見過不少在生成iframe時(shí)可以給iframe指定name的,由于頁面中iframe一般都不會(huì)太多,我們可以給它命一個(gè)惟一的名字,通過名字找到它.如果沒有名字,還可以根據(jù)它的class找到它,一般iframe樣式class都是固定的,但是這時(shí)候要想辦法確保選擇到的對(duì)象是惟一的,這樣才能保證測(cè)試結(jié)果的穩(wěn)定性.

獲取下拉列表


在一些查詢功能中,往往全有下拉列表,通過js獲取或者設(shè)置下拉項(xiàng)并不是一件很困難的事,然而我們并不想不了測(cè)試而增加無關(guān)的js代碼,這樣用完還要?jiǎng)h除非常麻煩,其實(shí)Selenium也提供了設(shè)置下拉列表選項(xiàng)的功能,這樣極大方便了我們的測(cè)試.

下面看示例代碼

我們首先 在頁面中添加如下代碼
<select name="China" id="zhengzhouDistrict"> <option
value="">--請(qǐng)選擇區(qū)域--</option> <option value="pdditrict">中原區(qū)</option> <option
value="hpditrict">二七區(qū)</option> <option value="xhditrict">管城區(qū)</option> <option
value="cnditrict">高新區(qū)</option> <option value="sjditrict">開發(fā)區(qū)</option> </select>
測(cè)試代碼如下:
[Fact] public void DropDownListTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var element =
driver.FindElement(By.Id("zhengzhouDistrict")); SelectElement dropdownList =
new SelectElement(element); dropdownList.SelectByIndex(3); var select =
dropdownList.SelectedOption.Text; Assert.Equal("管城區(qū)", select); }

以上代碼中我們先是通過普通方法獲取到了這個(gè)下拉列表,然后把它封裝成一個(gè)SelectElement對(duì)象,然后調(diào)用它的SelectByIndex設(shè)置選中的項(xiàng),這樣選中的項(xiàng)就是不默認(rèn)值了,而是我們想要選擇的值.

select還有按索引,鍵,值等設(shè)置選擇項(xiàng)的方法,并且可以取消選擇,大家自己嘗試一下,這里不再介紹.


然而以上方法并沒有什么太大作用,由于瀏覽器自帶的select界面往往都不太美觀,并且動(dòng)態(tài)交互性不是非常好,實(shí)際項(xiàng)目中我們很少使用原生的select,而是使用第三方ui框架帶的select,而第三方框架往往都是把select隱藏起來,然后把它的值賦值給一個(gè)input元素,它設(shè)置和獲取值都是通過第三方框架提供的api而非原生select自帶的方法.如果這時(shí)候使用以上方法獲取select元素就會(huì)導(dǎo)致失敗,selenium會(huì)提交元素被隱藏?zé)o法交互.針對(duì)這個(gè)問題筆者采用了一種比較笨的方法那就是模擬按鍵,當(dāng)然這里模擬按鍵并不引入第三方按鍵類框架,而是使用selenium本身的功能.

下面仍然以layui為例說明如何設(shè)置下拉列表值.

頁面代碼如下
<html> <head> <meta name="viewport" content="width=device-width" /> <link
href="~/lib/layui/css/layui.css" rel="stylesheet" /> <script
src="~/lib/jquery/dist/jquery.js"></script> <script
src="~/lib/layui/layui.all.js"></script> <title>FormTest</title> </head> <body>
<form class="layui-form" action=""> <div class="layui-form-item"> <div
class="layui-input-inline"> <select name="China" id="zhengzhouDistrict">
<option value="">--請(qǐng)選擇區(qū)域--</option> <option value="pdditrict">中原區(qū)</option>
<option value="hpditrict">二七區(qū)</option> <option value="xhditrict">管城區(qū)</option>
<option value="cnditrict">高新區(qū)</option> <option value="sjditrict">開發(fā)區(qū)</option>
</select> </div> </div> </form> <script> var layer = layui.layer; var form =
layui.form; form.render(); </script> </body> </html>

以上代碼和上面的類似,只是這里把它封裝成layui的select,我們的思路是先獲取到layui的顯示select的元素,也就是最終渲染的input元素,經(jīng)過觀察發(fā)現(xiàn)這個(gè)元素有一個(gè)這樣的樣式layui-input,我們可以通過這個(gè)關(guān)鍵信息找到它,然后點(diǎn)擊一下,這時(shí)候下拉列表就出來了,此時(shí)再點(diǎn)擊向下按鈕,在想要的位置處click一下就可以得到想要的結(jié)果了.

測(cè)試代碼如下:
[Fact] public void DropDownListTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var input =
driver.FindElement(By.ClassName("layui-input")); input.Click(); Actions action
= new Actions(driver);
action.SendKeys(Keys.ArrowDown+Keys.ArrowDown+Keys.ArrowDown).Click().Build().Perform();
}
以上主要是使用的Actions連續(xù)點(diǎn)擊兩次向下,就可以選擇到指定的元素了.

日期框處理

這里結(jié)合layui來講解如何處理日期框的問題


首先我們來觀察一下layui日期輸入框的特點(diǎn),它其實(shí)是一個(gè)input,并且是可以接受用戶輸入的,這就跟我們模擬手動(dòng)輸入帶來了方便,但是事情并沒有這么簡單,我們可以看到手輸內(nèi)容之后還要點(diǎn)擊那個(gè)彈出層的確定按鈕來確認(rèn)輸入,一旦點(diǎn)擊了確定則會(huì)把彈出層默認(rèn)選中的日期輸入到input框中,覆蓋了剛才的選擇.然而它卻有以下一個(gè)特點(diǎn):如果我們輸入以后不點(diǎn)擊確認(rèn),而是把光標(biāo)移到空白色點(diǎn)擊或者光標(biāo)焦點(diǎn)移到其它可輸入元素內(nèi),則也可以確認(rèn)輸入.這樣我們就可以在日期輸入框輸入內(nèi)容以后再把焦點(diǎn)移到其它輸入框就能夠確認(rèn)輸入了.

頁面代碼如下:
<html> <head> <meta name="viewport" content="width=device-width" /> <link
href="~/lib/layui/css/layui.css" rel="stylesheet" /> <script
src="~/lib/jquery/dist/jquery.js"></script> <script
src="~/lib/layui/layui.all.js"></script> <title>FormTest</title> </head> <body>
<div class="layui-inline"> <input type="text" class="layui-input" id="test1">
<input type="text" id="input1"/> </div> <script> var laydate = layui.laydate;
laydate.render({ elem: '#test1' }); </script> </body> </html>

以上有兩個(gè)input框,一個(gè)是普通input,一個(gè)是日期框,我們模擬在日期輸入框輸入內(nèi)容后把焦點(diǎn)移動(dòng)它右邊空白處點(diǎn)擊,然后看看上面日期輸入框里的值是不是我們賦予的.

測(cè)試代碼如下:
[Fact] public void DropDownListTest() { IWebDriver driver = new
ChromeDriver(Environment.CurrentDirectory); driver.Url =
"http://localhost:28614/HelloWorld/FormTest"; driver.Navigate(); var input =
driver.FindElement(By.Id("test1")); input.SendKeys("2008-5-3"); var position =
input.Location; var clickposition = position.X + 200; Actions actions = new
Actions(driver); actions.MoveByOffset(clickposition,
0).Click().Build().Perform(); var txt = input.GetAttribute("value");
Assert.Equal("2008-05-03", txt); }

以上代碼我們首先獲取到這個(gè)日期選擇框,然后給它輸入值.下面我們獲取它的位置主要是為了讓它關(guān)閉(如果點(diǎn)擊了空白處或者其它可點(diǎn)擊控件,則日期選擇框就會(huì)消失,這里只所以要關(guān)閉它是因?yàn)樗?dāng)前處于激活狀態(tài),如果不關(guān)閉則會(huì)影響其它操作).我們獲取到它的位置后向右移動(dòng)鼠標(biāo)到空白處,然后點(diǎn)擊空白處日期選擇框就消失了.我們輸入的是'2008-5-3'而斷言它是'2008-05-03'是因?yàn)閘ayui有格式糾正功能,自動(dòng)把一位的數(shù)據(jù)前面補(bǔ)零.


這里獲取input的值是通過GetAttribute獲取的,而不是通過Text,text是獲取元素內(nèi)部的文本(也就是文本包含在標(biāo)簽里),而input的值是它的value屬性的一個(gè)值,因此使用Text獲取不到.
一定要注意點(diǎn)擊位置,如果點(diǎn)擊位置位于鏈接或者提交按鈕上則可能觸發(fā)不可預(yù)期的效果.

前面我們介紹了如何通過普通的方法給元素設(shè)置值以及模擬特定的行為,本篇主要介紹如何獲取頁面cookie,如何模擬手機(jī)測(cè)試.

獲取頁面cookie

有些比較復(fù)雜的測(cè)試可能會(huì)用到cookie,在Selenium里通過driver.Manage().Cookies就可以獲取到頁面所有的cookie對(duì)象了.

模擬手機(jī)瀏覽器

由于目前沒有手機(jī)項(xiàng)目,這里并不詳細(xì)介紹,只是作為一個(gè)知識(shí)點(diǎn)簡單介紹一下.

看以下測(cè)試代碼
[Fact] public void DropDownListTest() { ChromeOptions opts = new
ChromeOptions(); opts.EnableMobileEmulation("iPhone X"); IWebDriver driver =
new ChromeDriver(Environment.CurrentDirectory,opts); driver.Url =
"http://www.baidu.com"; driver.Navigate(); }

這里主要是增加一個(gè)谷歌瀏覽器啟用模擬手機(jī)瀏覽器選項(xiàng),并指定一個(gè)模擬器的名字(這些名字可以通過谷歌瀏覽器的手機(jī)模式查看).然后再啟動(dòng)頁面就會(huì)在指定的手機(jī)模擬器運(yùn)行了.

以上運(yùn)行結(jié)果截圖如下:


友情鏈接
ioDraw流程圖
API參考文檔
OK工具箱
云服務(wù)器優(yōu)惠
阿里云優(yōu)惠券
騰訊云優(yōu)惠券
京東云優(yōu)惠券
站點(diǎn)信息
問題反饋
郵箱:[email protected]
QQ群:637538335
關(guān)注微信

感谢您访问我们的网站,您可能还对以下资源感兴趣:

调教肉文小说-国产成本人片免费av-空姐av种子无码-在线观看免费午夜视频-综合久久精品激情-国产成人丝袜视频在线观看软件-大芭区三区四区无码-啊啊好爽啊啊插啊用力啊啊-wanch视频网-国产精品成人a免费观看 国产亚洲视频在线观看| 日韩AV在线直播| 亚洲色情在线观看| 亚洲精品suv视频| 偷拍视频图片综合网| 天天爽夜夜爽AA片免费| 国产在线一区二区| 国产精品秘麻豆免费版现看视频 | H片在线观看| 亚洲精品日韩无码| 日韩欧美v| 亚洲三级无码在线| 欧美黄片无码| 2019中文字幕在线免费观看| 欧美精品黄片| 七十路の高齢熟女千代子| 嫩BX区二区三区的区别| 超清无码在线| 日本免费在线观看视频| 一级黄片学生妹| 精品视频一区二区三区| 日韩超碰在线| 日本在线视频一区二区| 日韩WWW| 北条麻妃中文字幕旡码| 蝌蚪窝免费在线视频| 欧美色性乐汇操日本娘们| 国产白丝在线| 亚洲精品成人无码毛片| 91国语对白| 欧美一级爱| 亚洲阿v天堂| 成人黄色在线观看视频| AV天堂国产| 中文字幕免费高清| 亚洲中文无码字幕| 欧美色图综合网| 五月婷婷丁香在线| 91西安站街老熟女露脸| 日本中文不卡| 蜜桃成人久久| 黄色一级爱爱| 69久久久久久久久久| 日本免费爱爱视频| 免费草逼视频| 日本欧美视频| 婷婷五月AV| 九九精品99| 最近日本中文字幕中文翻译歌词| 91激情在线| 日韩婷婷| 天天爽日日澡AAAA片| 精品大香蕉| 亚洲免费在线播放| 亚洲天堂无码在线观看| 成人在线精品视频| 蜜桃AV一区二区三区| 日韩三级在线观看| 欧美a级视频| 凹凸熟女凹凸BBWBBW| 亚洲黄色免费电影| 中文电视剧字幕在线播放免费视频| 亚洲欧美成人网站| 啪一啪操一操| 91福利网站| 尿在小sao货里面好不好| 欧美色图另类图片| 久艹综合| 蜜臀久久久99久久久久久久| 操操片| 性爱视频久久| 粉嫩小泬粉嫩小泬在线| 久久久xxx| 色黄网站在线观看| 婷婷综合一区| 亚洲欧美国产高清vA在线播放| 另类老妇奶性BBWBBwBBw| 日韩无码视频观看| WWW.亚洲无码| 久久夜夜操| 大香蕉免费网| 操操片| 亚洲AV无码成人专区| 91麻豆精品无码| 成人免费网站黄| 亚洲无码视频专区| 大香蕉三级| 黄色片视频| 91AV免费观看| 热的无码| 亚洲中文字幕网站| 色片在线观看| 91小仙女jK白丝袜呻吟| 午夜福利欧美| 午夜aaa| 精品福利在线观看| 特级丰满少妇一级AAAA爱毛片| 欧美乱伦视频| 特级丰满少妇免费观看| www.五月天婷婷| 亚洲免费观看高清视频| 正在播放无码| 超碰人人人| 99视频在线免费播放| 在线免费观看av网站| 99re这里只有精品6| 美女国产精品| 国产愉拍91九色国产愉拍| 黑人AV在线观看| 久久久久久久久久成人永久免费视频 | 五月黄色电影| 啪啪网站免费观看| 免费日本黄色| 婷婷五月天网址| 一区二区三区在线免费观看| 亚洲狠狠操| 日韩天天干| 亚洲三级视频| 五月天亭亭.com| av黄色网| 精品一区二区免费视频| 欧美性生交18XXXXX无码| 热久久在线观看| 三级片视频网址| 中文字幕2025年最好看电视剧| 天堂在线无码| 亚洲一区二区在线免费观看| 91高清视频| 999精品视频| 日本50路熟女| 欧美特黄AAA| 亚洲高清无码一区二区| 成人精品一区二区三区无码视频 | 六月丁香激情| 色接久久| 加勒比黑人和翔田千里在线播放 | 亚洲香蕉在线观看| 18禁91| 少妇熟女一区| 色婷婷亚洲婷婷| 高H视频在线观看| 亚洲一本| 欧美自拍偷拍| 久久久国产视频| 操你久久| 欧美激情性爱网站| 日韩av电影免费在线观看| 51嘿嘿嘿国产精品伦理| 日韩毛片一区二区| 日本三级片免费| 国产无码久久久| 大香蕉伊人综合在线| 青春草在线免费视频| 特级A级毛片| 亚洲香蕉| 91香蕉视频18| 激情五月毛片| 欧一美一婬一伦一区二区三区自慰国| 久久免费播放视频| 国产无遮挡又黄又爽| 国产精品国产精品国产专区| 中文字幕在线免费观看视频| 国产成人宗合| 国产wwwww| 国产一级二级三级片| 色综合中文字幕| 精品码一区二在线观看| 久久蜜桃| 婷婷视频网站| 鲁一鲁在线视频| 激情婷婷综合| 蜜桃传媒一区二区亚洲| 色婷婷18| 日韩黄色电影网址| 91视频一区| 国产真实露脸乱子伦对白高清视频| 黄色片在线播放| 五月天丁香| 中文无码AV| 午夜性爽视频男人的天堂| 中文字幕有码在线播放| 亚洲天堂网2025| 欧美日韩国产91| 久久黄色的| 一级黄色网| 欧美日韩中文字幕在线| 日韩人妻精品中文字幕| 人妻少妇偷人精品无码免费| 国产高清激情| 精品精品精品| 日韩三级AV| 国内老熟妇对白HDXXXX| 大香蕉中文在线| 亚洲一区欧美二区gay| 午夜神马51| 久久久久久久久久久久高清毛片一级| 亚洲一本之道| 欧美黄片免费在线观看| 成年人黄色网址| 无码操逼| gogogo免费高清在线偷拍| 日韩中字幕无码| 西西人体44www大胆无码| 婷婷色色婷婷| 99精品丰满人妻无码一区二区| 亚洲午夜在线| 老熟女-ThePorn| 国产成人在线播放| www.色欲av| 日韩无码一| 9久9久9久9久女女女女| 国产又爽又黄免费网站在| 精品视频91| 五月天激情电影| 大鸡巴黄色视频免费观看| 人操人人人操| 自拍偷拍激情视频| 色拍拍视频| 日韩视频一区二区三区| 人妻无码中文久久久久专区| 91丨精品丨国产丨丝袜| 小明看台湾成人永久免费视频网站| 1024国产| 天堂va欧美va亚洲va在线| 无码1区| 靠逼久久| 国产色片| 日皮视频在线观看免费| 四虎影院污| 人妻无码久久精品| 天天操天天插| 99热1| 国产一区二区三区视频在线| 亚洲成人在线观看视频| 久久九色| 欧美浮力| 最近中文字幕免费mv第一季歌词大全| 亚洲精品午夜精品| 精品乱子伦一区二区三区,亚洲国产成| 91蜜臀在线| 欧美午夜性爱视频| av四虎| 人人舔| 天天综合网站| 激情久久av| 免费看一区二区三区| 91天天综合| 99热在线观看精品| 日韩中出视频| 91蝌蚪在线| 91青青草| 蝌蚪九色啦403| 色婷婷色婷婷| 欧美成人午夜福利| 奇米影视亚洲春色| 欧美大胆a| 国产成人自拍视频在线观看| ThePorn人妻白浆| 成人在线乱码视频| 午夜无码福利在线观看| 亚洲免费成人视频| 免费黄色av| 一级a一级a爰片免费免免在线| 俺来俺去www色官网| 欧美性爱-熊猫成人网| 五丁香在线观看AV| 男人的天堂视频在线| 国产伊人在线| 色网在线| 大学生18一19GAY169| 国产在线A片| 伊人亚洲综合| 大香蕉伊人网在线| 国产亲子乱XXXXimim/| www.国产视频| 色色com| 自拍偷拍亚洲无码| 国产草逼视频| 中文字幕黑人无码| 日韩视频91| 亚州天堂网| 91无码在线观看| 亚州精品成人片| 日韩不卡视频在线| 特级西西WWW888| 国产欧美一区二区三区国产幕精品| 日本高清久久| 国产灬性灬淫灬欲水灬| 白虎高清无码大尺度免费在线观看 | 天天干天天色天天日| 抽插视频欧美| 婷婷精品免费| 欧美视频免费在线观看| 在线观看国产欧美| 日韩视频久久| 国产做受91一片二片老头| 综合插插| 久激情内射婷内射蜜桃欧美一级| 91麻豆精品国产91久久久熟女| 蜜桃无码视频小说网站| 青青草手机在线观看| 91无码人妻| 欧美MV日韩MV国产网站| 午夜福利在线视频| 亚洲激情网址| 在线国产福利| 天堂中文字幕在线观看| 7777精品伊人久久7777| 亚洲欧美日本在线观看| 高清色色女网站| 91大神shunv| 亚洲精品免费观看| 麻豆性交| 中文字幕乱码中文字幕电视剧| 亚洲高清在线观看| 99在线精品视频观看| 夜夜狠狠躁日日躁| 久久久免费黄色视频| 中文资源在线a中文| AV在线天堂| 亚洲国产成人视频| 免费看黄片,在线观看| 亚洲国产精品一区二区三区| 黄色视频导航| 亚洲色情网站| www在线播放| 国产成人AV网站| 蜜乳AV一区二区三区| 日韩成人性爱| 黑人粗暴偷拍一区二区| 午夜天堂精品久久久| 美女天天操| 欧美色视| 国产精品精品| 安微妇搡BBBB搡BBBB日| 青青草在线播放| 91蜜桃传媒| 久久久久久无码| 欧美日韩免费| 亚洲AV无码秘翔田| 亚洲国产91| 五月天婷婷综合网| 亚洲性爱中文字幕| 亚洲免费av在线| 香蕉三级片| 香蕉一级视频| 伊人大香蕉电影| 精品无码一区二区人妻久久蜜桃| 国产精品欧美一区二区| 亚洲香蕉视频| 高清无码爱爱| 在线视频中文字幕| 国产精品无码激情| 久久69| 国产又爽又黄视频在线看| 国产精品v| 三级片AV在线| 欧美熟妇精品一级A片视色| 韩国成人免费无码免费视频| 亚洲精品成人在线| 国产一级A片在线观看| 欧美精品成人免码在线| 欧美男人天堂网| 三级网站免费观看| 国产九九精品| 亚洲天码中字| 西西www444无码免费视频| 激情深爱五月| 秋霞亚洲| 四虎永久在线精品| 欧美成人一区二区三区片| 手机在线观看AV| 国产精品久久久久久久久A| 逼特逼视频在线| 中文字幕黑人无码| 一级黄色录像带| 安徽妇搡BBBB搡BBBB,另类老妇| 亚洲成人AV无码| 午夜免费播放观看在线视频| 亚洲成人无码av| 麻豆福利在线| 在线观看免费无码| 91丨豆花丨国产极品| 欧美精品成人免码在线| 免费黄片视频大全| 91天堂网| 欧美日韩中文视频| 亚洲女人被黑人巨大进入| 肏屄在线观看| 免费A片在线观看| 天堂色综合| 亚洲v| 欧美精品亚洲| 欧美日韩视频一区二区三区| 午夜福利1000| 国产又黄又大又粗| 亚洲免费三级| 日本白嫩的BBw| 精精品人妻一区二区三区| 91理论片| 91香蕉视频18| 91视频你懂的| 国产亚洲aⅴ| 北条麻妃无码一区二区| 激情婷婷av| 日韩少妇视频| 久久五月天综合| 久久伊人影院| 大地av| 久久6| 日韩91在线| 国产精品成人国产乱| 国产成人无码区亚洲A片356p| 国产日韩在线播放| 香蕉婷婷| 天堂在线网| 99久热| 岛国av免费看| 久久精品片| 欧美视频免费在线观看| 香蕉视频日韩| 无码天堂| 北条麻妃中文字幕在线观看| 激情黄色毛片| 蜜桃久久久| 中文字幕av一区| 亚洲色吧| 中文字幕一区在线| 在线观看中文字幕视频| 久色网站| 国产做爰XXXⅩ久久久骚妇| 91人妻视频| 777视频在线观看| 亚洲AV片一区二区三区| 久久草草热国产精品| 五月天激情四射| 久久老熟女| 中文无码一区二区三区| 95四川乱子伦视频国产| 亚洲AV成人无码久久精品麻豆| 久久久久久黄色| 久久久XXX| 伊人久久av| 六月综合网| 亚洲日韩视频| 蜜桃视频在线入口www| 玖热精品| 激情六月婷婷| 久久久成人网站| 国产一级特黄| 午夜福利片| 色老板视频在线观看| 熟女人妻人妻の视频| 亚洲有码中文字幕| 国产熟女一区二区视频网站| 91资源在线观看| 91大鸡| 中文字幕在线看| 美女毛片网站| 国产肏屄视频| 刘玥一区二区| 北条麻妃视频在线播放| 激情五月丁香婷婷| 黄色工厂这里只有精品| 操美女一区二区| 91久久婷婷| 91人妻无码精品一区二区三区| 一区二区三区四区不卡| 中文字幕日韩在线视频| 国产网站免费| 日韩性AV| 精品无码免费| 激情五月激情综合网| 4080yy午夜理论片成人| 在线视频亚洲| 国产成人无码精品| 中国人妻HDbute熟睡| 亚洲无码在线电影| 成人AV片导航| 亚洲无码一区二区三区妃光 | 一区二区免费视频| 国产精品国产精品国产专区不| 五月婷婷综合激情| 暗呦罗莉精品一区二区| 日韩高清无码不卡| 午夜亚洲精品| 无码日韩av| 这里都是精品| 色老板在线免费观看| 91一级A片在线观看| 国产精品123区| 亚洲欧美国产毛片在线| 久久永久免费| 成人无码视频在线| 欧洲一区二区| 911香蕉视频| 天堂中文资源在线观看| 三级A片| 无码人妻中文字幕| 69国产成人综合久久精品欧美 | 国产在线拍揄自揄拍无码男男| 青草社区在线观看| 9i看片成人免费视频| 国产成人无码Av片在线公司| AA精品| 蜜桃av秘无码一区三区四| 精品无码人妻一区二区| 日本无码视频在线| 国产精品毛片A√一区| 国产在线成人| 黄色电影网站在线观看| 精品人妻在线| 日韩欧美综合一区| 丰满的人妻一区二区三区果冻 | 成年视频网站| 天天欧美| 国产久久久| 91操B| 成人V| 日韩欧美中文字幕视频| 成人在线乱码视频| 国产1页| 亚洲一区二区三区在线视频| 国产精品国产三级国产专区52| 天天爱天天操| 婷婷精品国产a久久综合| 精品无码一区二区三区免费| 毛片大香蕉| 亚洲va综合va国产va中文| 久久久婷婷婷| 亚洲免费观看高清完整版在线| 日韩一级内射| 亚洲中文视频免费| 欧美日韩国产在线观看| 久久成人综合| 国产精品秘久久久久久| 99热高清| 天天日天天干麻豆| 日韩天堂在线| 各种妇女撒尿mm毛免费网站| 免费69视频看片| 欧美日韩亚洲另类| 国产熟女一区二区视频网站| 久久精品免费观看| 视频一区二区三区在线观看| 中文无码在线观看中文字幕av中文 | 懂色中文字幕| 国产成人毛片| 91久久国产综合久久91精品网站 | 精品国精品自拍自在线| 大香焦草久| 日日撸夜夜撸| 国产香蕉在线| AAA无码| 超碰国产97| 一级a一级a爰片免费免免在线 | 亲子乱婬-一级A片| 国产色五月视频| 亚洲色逼| 国产无套内射在线观看| 大香蕉尹人在线观看| 91嫖妓站街埯店老熟女| 亚洲伊人在线| 大香蕉黄色电影| 第一福利视频| www.久久久久| 国产午夜成人免费看片无遮挡| 国产对白视频| 欧美在线观看一区二区| 日韩免费视频| 99热99| 国产综合久久777777麻豆| 国产高清成人| 欧美另类极品| 二区三区在线观看| 日韩99在线观看| 天天射天天| 91人妻人人爽人人爽| 3344在线观看免费下载视频 | 日韩少妇无码| 日本色情在线| 无码精品一区二区三区在线播放| 蜜柚av| 久久一道本| 靠逼免费视频| 亚洲成色A片77777在线小说| 东京热一区二区三区四区| 亚洲无码久久网| 无码成人在线观看| 插进去综合图| 亚洲美女视频| 亚洲性爱中文字幕| 俺也去啦WWW色官网| 天堂资源中文在线| 国产乱伦免费视频| 国精产品一区一区三区有限公司杨 | 天堂在线中文字幕| 97香蕉网| 国产亚洲色婷婷久久99精品| 国产aaaa| 国产精品嫩草久久久久yw193| 特级西西444WWW高清大视频| 国产无套在线观看| 国产午夜福利视频| 日韩无码一二三| 亚洲精品一区二区三| 久久精品91| 日韩一级片免费看| 一级看片免费视频| 18禁网站在线播放| 久久黄色成人视频| 夫妻无码| footjobvk| 亚洲一区二区在线| 久久免费精品视频| 97人妻人人澡人人爽人人精品| 青青伊人久久| 免费一级A毛片夜夜看| 日产精品久久久久| 欧美成人中文字幕在线| 精品亚洲成人| 黄色视频免费观看国产| 无码欧美人XXXXX日本无码| 视频一区二区免费| 亚洲性夜夜天天天天天天| 久久精品99久久久久久久久| 国产www| 99内射| 激情AV在线| 成人爽a毛片一区二区免费| 中文字幕免费在线播放| 国产精品蜜| 亚洲成人视频免费在线观看| 久久中文娱乐网| 国产精品天天| 麻豆AV片| 男人操女人免费网站| 欧美v在线观看| 在线免费看A| 高清人妻无码| 色大香蕉伊人| 美国高清无码| 麻豆黄网| 亚洲AV无码一区毛片AV| 999久久精品| 成人国产欧美日韩在线视频| 蜜臀AⅤ在线| 国产成人在线视频| 亚洲女人天堂| 操逼视频网| 免费国产视频| 人人舔| 成人h在线| 日本无码嫩草一区二区| 一级免费黄色电影| 一道本久久| 亚洲黄色精品| 欧美一二区| 青青草操逼视频| 免费看一级片| 在线中文字幕av| 91久久综合亚洲鲁鲁五月天| 国产黃色AAA片| 黄色91| 九九热精品视频在线观看| 欧美三级欧美一级| 亚洲综合免费观看高清完整版| 亚洲一区AV| 欧美一级婬片免费视频华泰老添妇| 西西西444www无码视| 精品人妻二区中文字幕| 麻豆国产精品| 久久女人视频| 国产Av一区二区三区| 日日夜夜天天| 韩国精品无码一区二区三区18 | 日韩久久婷婷| 亚洲黄色一级电影| 特级西西人体444www高清| 在线观看日韩视频| 日韩无码免费电影| 五月婷婷色播| a免费在线观看| 四虎成人精品在永久免费| 国产精品久久久久无码| 51国产黑料吃瓜在线入口| 国产熟女| 午夜成人视频在线观看| 男女69视频| 国产成人午夜福利在线| 中文字幕在线观看免费高清电影 | 日韩免费高清无码视频| 亚洲精品女人| 青青色在线视频| 真人无码| 综合色网站| 免费看黄A级毛片成人片| 亚洲av免费在线| 男女视频网站| 免费看一级片| 国产黄色自拍视频| 天天色图| 视频一视频二在线视频| 日韩成人视屏| 亚洲无码免费视频在线观看| 亚洲aaaaaa| 女邻居的B好大| 97人人爽人人爽人人爽人人爽 | www激情| 久色亚洲| 精品一区二区三区免费| 日韩欧美一级视频| 欧美人妻激情| 久久男人网| 亚洲激情五月天| 欧美手机在线| 新亚洲天堂男子Av-| 久久久久国产一区二区三区四区| 伊人久久大香色综合久久| 在线观看免费黄视频| 无码免费毛片| 羽月希奶水饱胀在线播放| 久久艹久久| 久久99久久99久久99| 天天干天天色天天日| 久久久网| 国产黄色视频在线| 欧美性交一区二区| 就去色色五月天| 九九惹伊人| 2019天天操| 影音先锋国产在线| 国产一区二区三区四区五区在线| 国产在线拍偷自揄拍无码一区二区 | 尤物视频在线观看| 大秀91视频| 91久久久精品| 日韩欧美大香蕉| 免费看毛片的网站| 欧美A色| 授乳奶水x88MAV| 人人看人人做| 成人h在线| 无码中文字幕高清| 久久成人久久| 丁香一区二区| 91国内精品视频| 男人天堂手机在线| 九九热免费视频| 国产高清无码在线| 强伦轩人妻一区二区三区最新版本更新内容| 黄网免费看| 91丨PORN首页| 肏逼综合网| 51国产黑料吃瓜在线入口| 免费AA片| 大香蕉伊人视频| 午夜福利2025| 免费看片av| 国内精品久久久久久久久久变脸| 亚洲视频在线视频| 中文AV字幕| 女人的天堂AV| www.天天射视频| 中文字幕成人在线播放| 91三级片在线观看| 国产人妻在线| 靠逼久久| 日本免费一区二区三区| 成人操B视频在线观看| 日韩精品一| 91亚洲免费视频| 日韩精品人妻中文字幕第4区 | 六月丁香网| 黄色视频网站在线| 中文字幕在线观看a| 熟妇操逼视频| 成人伊人综合网| 麻豆久久久久| 激情性爱五月天| 色色97| 国产日韩a| 婷婷色视频| 久久久久久久久久国产| 护士小雪的yin荡高日记H视频 | 69视频网站| 另类老妇性BBBWBBW| 五月丁香激情四射| 一区二区三区久久久久| 国产乱子伦-区二区三区四区| 亚洲精品在线观看视频| 欧美一级黄色片| 日韩欧美一级A片| 国内精品久久久久久久久久变脸 | 日本无码成人| 手机看片日韩| 1插菊花综合网| 超碰91免费在线观看| 国产一区二三区| 伊人成年网| 国产AV三级片| 秋霞精品一区二区三区| 国产天堂av| www.丁香五月| 三级片小说| 特级丰满少妇一级AAAA爱毛片| 爱爱欧美| 一个人看的www日本高清视频| 九九碰九九爱97超碰| 国产美女高潮| www.日韩系列| 九月丁香婷婷| 色欲一区二区| 91工厂露脸熟女| 日韩乱轮小说与视频| 无码国产av| 亚洲国产毛片| A片视频网站| 败火老熟女ThePorn视频| 超碰九一| 欧美黄色免费网站| 在线大香蕉| 安徽妇搡BBBB搡BBBB,另类老妇| 日韩少妇无码| 你懂的网址在线观看| 天天日综合| 久久久无码人妻精品无码| 一级看片免费视频| 久草网在线| 一级片免费观看| 日韩无码123区| 亚洲A片一区二区三区电影网| 国产一级a毛一级a做免费高清视频| 亚洲无码中文字幕在线观看| 成年人黄色视频免费观看| 黄色工厂这里只有精品| 亚洲无码网址| 撸撸视频| 一区二区三区Av| 欧美成人免费电影| 亚洲av电影在线观看| 在线观看成人三级片| 一级电影视频去去去| 麻豆mdapp03.tⅴ| 九九r在线精品观看视频| 美女高潮网站| 大黄网站在线观看| 黄色欧美视频| 青娱乐国产精品一区二区| 91无码人妻精品一区二区蜜桃| 欧美日韩中文字幕在线| 久久夜色视频网| 中文字幕+乱码+中文乱码91在线观看 | 韩国一级av| 免费看AV大片| 性色在线| 欧美成人精品欧美一级私黄| 日本东京热视频| 欧美日韩成人网站| 无码探花| 婷婷色图| 欧美一级A片免费看视频小说| 撒尿BBw搡BBwBBw| 玉米地一级婬片A片| 亚洲无码一区二区在线| 人人爱人人摸人人操| 无码专区一区二区三区| 国产精品成人69| 国产高清无码在线观看视频| 亚洲精品大片| 黄色电影毛片| 婷婷狠狠爱| www.狠狠撸| 国产高清无码免费视频| 六月婷婷网| 91拍真实国产伦偷精品| 高清毛片AAAAAAAAA片| 五月天婷婷激情视频| 亚洲AV在线免费观看| 五月婷婷啪| 无码内射在线播放| 18XXX亚洲HD护士JD| 91在线无码精品秘软件| 黄网站在线播放| 中文字幕免费在线| 成人做爰黄级A片免费看土方| 免费无码av| 日韩无码精品视频| 黄色成人大片| 97福利在线| 高清无码免费| 久草视频在线免费看| 中文字幕在线有码| 久久er视频| 综合亚洲视频| 欧美手机在线视频| 亚洲AV秘无码一区在线| 色婷网| 色婷婷丁香五月| 在线播放91灌醉迷J高跟美女 |