日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JUnit 5和Selenium –使用Selenium内置的`PageFactory`实现页面对象模式

發布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JUnit 5和Selenium –使用Selenium内置的`PageFactory`实现页面对象模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Selenium是一組支持瀏覽器自動化的工具和庫,主要用于Web應用程序測試。 Selenium的組件之一是Selenium WebDriver,它提供客戶端庫,JSON有線協議(與瀏覽器驅動程序進行通信的協議)和瀏覽器驅動程序。 Selenium WebDriver的主要優點之一是,它受所有主要編程語言的支持,并且可以在所有主要操作系統上運行。

在帶有Selenium WebDriver的JUnit 5的這一部分中,我將通過Selenium的內置PageFactory支持類來介紹Page Object模式的實現。 PageFactory提供了一種機制,用于初始化任何聲明使用@FindBy批注注釋的WebElement或List<WebElement>字段的Page對象。

關于本教程

您正在閱讀帶有Selenium WebDriver的JUnit 5的第二部分-教程 。

本教程中的所有文章:

  • 第1部分– 從頭開始設置項目–使用JUnit 5和Jupiter Selenium進行Gradle
  • 第2部分– 使用Selenium內置的PageFactory實現Page Object Pattern

接下來的是:

  • 第3部分–改進項目配置–并行執行測試,測試執行順序,參數化測試,AssertJ等

該教程的源代碼可以在Github上找到

介紹頁面對象模式

我們將在以下位置為基于JavaScript的Todo應用程序創建測試: http : //todomvc.com/examples/vanillajs 。 該應用程序被創建為單頁應用程序(SPA),并使用本地存儲作為任務存儲庫。 可能實現的方案包括添加和編輯待辦事項,刪除待辦事項,將單個或多個待辦事項標記為已完成。 該實現將使用Page Object模式完成。

頁面對象模式的目標是從實際測試中抽象出應用程序頁面和功能。 頁面對象模式提高了代碼在測試和固定裝置之間的可重用性,但也使代碼易于維護。

您可以在Martin Fowler的文章中了解有關此模式的更多信息: https : //martinfowler.com/bliki/PageObject.html

頁面API或頁面對象

我們將從將TodoMVC頁面建模為Page Object的項目開始。 該對象將表示將在測試中使用的頁面API。 可以使用接口對API本身進行建模。 如果查看以下界面的方法,則會注意到這些方法只是頁面上可用的用戶功能。 用戶可以創建待辦事項 ,用戶可以重命名待辦事項 ,也可以刪除待辦事項 :

public interface TodoMvc { void navigateTo(); void createTodo(String todoName); void createTodos(String... todoNames); int getTodosLeft(); boolean todoExists(String todoName); int getTodoCount(); List<String> getTodos(); void renameTodo(String todoName, String newTodoName); void removeTodo(String todoName); void completeTodo(String todoName); void completeAllTodos(); void showActive(); void showCompleted(); void clearCompleted(); }

上面的接口(顯然)隱藏了所有實現細節,但也沒有將任何Selenium WebDriver詳細信息公開給潛在的客戶端(在我們的情況下,客戶端=測試方法)。 實際上,它與Selenium WebDriver無關。 因此,從理論上講,我們可以針對不同的設備(例如移動本機應用程序,桌面應用程序和Web應用程序)使用此頁面的不同實現。

創建測試

定義了頁面API后,我們可以直接跳轉到創建測試方法。 在確認API可用于創建測試之后,我們將進行頁面實現。 這種設計技術使您可以專注于應用程序的實際使用,而不必太早進入實現細節。

創建了以下測試:

@ExtendWith (SeleniumExtension. class ) @DisplayName ( "Managing Todos" @DisplayName "Managing Todos" ) class TodoMvcTests { private TodoMvc todoMvc; private final String buyTheMilk = "Buy the milk" ; private final String cleanupTheRoom = "Clean up the room" ; private final String readTheBook = "Read the book" ; @BeforeEach void beforeEach(ChromeDriver driver) { this .todoMvc = null ; this .todoMvc.navigateTo(); } @Test @DisplayName ( "Creates Todo with given name" ) void createsTodo() { todoMvc.createTodo(buyTheMilk); assertAll( () -> assertEquals( 1 , todoMvc.getTodosLeft()), () -> assertTrue(todoMvc.todoExists(buyTheMilk)) ); } @Test @DisplayName ( "Creates Todos all with the same name" @DisplayName "Creates Todos all with the same name" ) void createsTodosWithSameName() { todoMvc.createTodos(buyTheMilk, buyTheMilk, buyTheMilk); assertEquals( 3 , todoMvc.getTodosLeft()); todoMvc.showActive(); assertEquals( 3 , todoMvc.getTodoCount()); } @Test @DisplayName ( "Edits inline double-clicked Todo" ) void editsTodo() { todoMvc.createTodos(buyTheMilk, cleanupTheRoom); todoMvc.renameTodo(buyTheMilk, readTheBook); assertAll( () -> assertFalse(todoMvc.todoExists(buyTheMilk)), () -> assertTrue(todoMvc.todoExists(readTheBook)), () -> assertTrue(todoMvc.todoExists(cleanupTheRoom)) ); } @Test @DisplayName ( "Removes selected Todo" ) void removesTodo() { todoMvc.createTodos(buyTheMilk, cleanupTheRoom, readTheBook); todoMvc.removeTodo(buyTheMilk); assertAll( () -> assertFalse(todoMvc.todoExists(buyTheMilk)), () -> assertTrue(todoMvc.todoExists(cleanupTheRoom)), () -> assertTrue(todoMvc.todoExists(readTheBook)) ); } @Test @DisplayName ( "Toggles selected Todo as completed" ) void togglesTodoCompleted() { todoMvc.createTodos(buyTheMilk, cleanupTheRoom, readTheBook); todoMvc.completeTodo(buyTheMilk); assertEquals( 2 , todoMvc.getTodosLeft()); todoMvc.showCompleted(); assertEquals( 1 , todoMvc.getTodoCount()); todoMvc.showActive(); assertEquals( 2 , todoMvc.getTodoCount()); } @Test @DisplayName ( "Toggles all Todos as completed" @DisplayName "Toggles all Todos as completed" ) void togglesAllTodosCompleted() { todoMvc.createTodos(buyTheMilk, cleanupTheRoom, readTheBook); todoMvc.completeAllTodos(); assertEquals( 0 , todoMvc.getTodosLeft()); todoMvc.showCompleted(); assertEquals( 3 , todoMvc.getTodoCount()); todoMvc.showActive(); assertEquals( 0 , todoMvc.getTodoCount()); } @Test @DisplayName ( "Clears all completed Todos" @DisplayName "Clears all completed Todos" ) void clearsCompletedTodos() { todoMvc.createTodos(buyTheMilk, cleanupTheRoom); todoMvc.completeAllTodos(); todoMvc.createTodo(readTheBook); todoMvc.clearCompleted(); assertEquals( 1 , todoMvc.getTodosLeft()); todoMvc.showCompleted(); assertEquals( 0 , todoMvc.getTodoCount()); todoMvc.showActive(); assertEquals( 1 , todoMvc.getTodoCount()); } }

更多:如果您不熟悉JUnit 5,則可以在我的博客上閱讀此介紹: https : //blog.codeleak.pl/2017/10/junit-5-basics.html 。 本文還有一個用波蘭語寫的較新版本: https : //blog.qalabs.pl/junit/junit5-pierwsze-kroki/ 。

在上面的測試類中,我們看到在每次測試之前,ChromeDriver均已初始化,并通過Selenium Jupiter擴展名(因此@ExtendWith(SeleniumExtension.class) )注入到設置方法( @BeforeEach )中。 驅動程序對象將用于初始化頁面對象。

頁面對象建模技術不同,并且很大程度上取決于您正在處理的項目的特征。 您可能要使用接口,但這不是必需的。 您可能需要考慮在較低的抽象級別上進行建模,在該級別上,API公開了更詳細的方法,例如setTodoInput(String value) , clickSubmitButton() 。

使用Selenium內置的PageFactory實現Page Object Pattern

到現在為止,我們已經有一個接口可以對TodoMVC頁面的行為進行建模,并且我們有使用API??的失敗測試。 下一步是實際實現頁面對象。 為此,我們將使用Selenium內置的PageFactory類及其實用程序。

PageFactory類簡化了Page Object模式的實現。 該類提供了一種機制,用于初始化任何聲明使用@FindBy批注注釋的WebElement或List<WebElement>字段的Page Object。 可以在org.openqa.selenium.support包中找到PageFactory和支持頁面對象模式實現的所有其他注釋。

下面的TodoMvcPage類實現了我們之前創建的接口。 它聲明了幾個用@FindBy注釋注釋的字段。 它還聲明一個構造函數,該構造函數采用工廠使用的WebDriver參數來初始化字段:

public class TodoMvcPage implements TodoMvc { private final WebDriver driver; private static final By byTodoEdit = By.cssSelector( "input.edit" ); private static final By byTodoRemove = By.cssSelector( "button.destroy" ); private static final By byTodoComplete = By.cssSelector( "input.toggle" ); @FindBy (className = "new-todo" ) private WebElement newTodoInput; @FindBy (css = ".todo-count > strong" ) private WebElement todoCount; @FindBy (css = ".todo-list li" ) private List<WebElement> todos; @FindBy (className = "toggle-all" ) private WebElement toggleAll; @FindBy (css = "a[href='#/active']" ) private WebElement showActive; @FindBy (css = "a[href='#/completed']" ) private WebElement showCompleted; @FindBy (className = "clear-completed" ) private WebElement clearCompleted; public TodoMvcPage(WebDriver driver) { this .driver = driver; } @Override public void navigateTo() { driver.get( " http://todomvc.com/examples/vanillajs " ); } public void createTodo(String todoName) { newTodoInput.sendKeys(todoName + Keys.ENTER); } public void createTodos(String... todoNames) { for (String todoName : todoNames) { createTodo(todoName); } } public int getTodosLeft() { return Integer.parseInt(todoCount.getText()); } public boolean todoExists(String todoName) { return getTodos().stream().anyMatch(todoName::equals); } public int getTodoCount() { return todos.size(); } public List<String> getTodos() { return todos .stream() .map(WebElement::getText) .collect(Collectors.toList()); } public void renameTodo(String todoName, String newTodoName) { WebElement todoToEdit = getTodoElementByName(todoName); doubleClick(todoToEdit); WebElement todoEditInput = find(byTodoEdit, todoToEdit); executeScript( "arguments[0].value = ''" , todoEditInput); todoEditInput.sendKeys(newTodoName + Keys.ENTER); } public void removeTodo(String todoName) { WebElement todoToRemove = getTodoElementByName(todoName); moveToElement(todoToRemove); click(byTodoRemove, todoToRemove); } public void completeTodo(String todoName) { WebElement todoToComplete = getTodoElementByName(todoName); click(byTodoComplete, todoToComplete); } public void completeAllTodos() { toggleAll.click(); } public void showActive() { showActive.click(); } public void showCompleted() { showCompleted.click(); } public void clearCompleted() { clearCompleted.click(); } private WebElement getTodoElementByName(String todoName) { return todos .stream() .filter(el -> todoName.equals(el.getText())) .findFirst() .orElseThrow(() -> new RuntimeException( "Todo with name " + todoName + " not found!" "Todo with name " " not found!" )); } private WebElement find(By by, SearchContext searchContext) { return searchContext.findElement(by); } private void click(By by, SearchContext searchContext) { WebElement element = searchContext.findElement(by); element.click(); } private void moveToElement(WebElement element) { new Actions(driver).moveToElement(element).perform(); } private void doubleClick(WebElement element) { new Actions(driver).doubleClick(element).perform(); } private void executeScript(String script, Object... arguments) { ((JavascriptExecutor) driver).executeScript(script, arguments); } }

@FindBy不是唯一用于在Page Object中查找元素的注釋。 還有@FindBys和@FindAll 。

@FindBys

@FindBys批注用于標記Page Object上的字段,以指示查找應使用一系列@FindBy標記。 在此示例中,Selenium將 id = "menu"的元素搜索class = "button"的元素:

@FindBys ({ @FindBy (id = "menu" ), @FindBy (className = "button" ) }) private WebElement element;

@FindAll

@FindAll批注用于標記Page Object上的字段,以指示查找應使用一系列@FindBy標記。 在此示例中,Selenium將搜索所有class = "button"的元素以及所有id = "menu"的元素。 不保證元素按文檔順序排列:

@FindAll ({ @FindBy (id = "menu" ), @FindBy (className = "button" ) }) private List<WebElement> webElements;

PageFactory提供了幾種靜態方法來初始化Page Objects。 在我們的測試中,在beforeEach()方法中,我們需要初始化TodoMvcPage對象:

@BeforeEach void beforeEach(ChromeDriver driver) { this .todoMvc = PageFactory.initElements(driver, TodoMvcPage. class ); this .todoMvc.navigateTo(); }

PageFactory使用反射初始化對象,然后初始化所有標有@FindBy批注的WebElement或List<WebElement>字段( @FindBy不進行任何查找,而是對字段進行代理)。 使用此方法要求Page Object具有接受WebDriver對象的單個參數構造函數。

定位元素

那么元素何時定位? 每次訪問該字段都會進行查找。 因此,例如,當我們執行代碼時: newTodoInput.sendKeys(todoName + Keys.ENTER); 在createTodo()方法中,實際執行的指令是: driver.findElement(By.className('new-todo')).sendKeys(todoName + Keys.ENTER) 。 我們可以預料,不是在對象初始化期間而是在第一個元素查找期間引發未找到元素的潛在異常。

Selenium使用代理模式來實現所描述的行為。

@CacheLookup

在某些情況下,每次訪問帶注釋的字段時都不需要查找元素。 在這種情況下,我們可以使用@CacheLookup批注。 在我們的示例中,輸入字段在頁面上沒有更改,因此可以緩存其查找:

@FindBy (className = "new-todo" ) @CacheLookup private WebElement newTodoInput;

運行測試

現在是執行測試的時候了。 可以從IDE或使用終端來完成:

./gradlew clean test --tests *TodoMvcTests

通過所有測試,構建成功:

> Task :test pl.codeleak.demos.selenium.todomvc.TodoMvcTests > editsTodo() PASSED pl.codeleak.demos.selenium.todomvc.TodoMvcTests > togglesTodoCompleted() PASSED pl.codeleak.demos.selenium.todomvc.TodoMvcTests > createsTodo() PASSED pl.codeleak.demos.selenium.todomvc.TodoMvcTests > removesTodo() PASSED pl.codeleak.demos.selenium.todomvc.TodoMvcTests > togglesAllTodosCompleted() PASSED pl.codeleak.demos.selenium.todomvc.TodoMvcTests > createsTodosWithSameName() PASSED pl.codeleak.demos.selenium.todomvc.TodoMvcTests > clearsCompletedTodos() PASSED BUILD SUCCESSFUL in 27s 3 actionable tasks: 3 executed

下一步

在本教程的下一部分中,您將學習如何改善項目配置。 您將學習并行執行測試,測試執行順序,參數化測試,AssertJ等。

翻譯自: https://www.javacodegeeks.com/2019/10/using-pagefactory-implement-page-object-pattern.html

總結

以上是生活随笔為你收集整理的JUnit 5和Selenium –使用Selenium内置的`PageFactory`实现页面对象模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

麻豆久久久久久久 | 中文字幕网站 | 日韩免费观看av | 1024手机看片国产 | 国产精品一区专区欧美日韩 | 天堂av高清 | 一区 在线 影院 | 91亚洲成人| 少妇做爰k8经典 | 日韩三区在线 | 国产理论片在线观看 | 色婷婷六月天 | 精品久久亚洲 | 91色在线观看 | 国产1级视频 | 亚洲精品在线免费观看视频 | 亚洲影院色 | 亚洲免费资源 | 国产中文欧美日韩在线 | 亚洲精品一区二区在线观看 | 日本动漫做毛片一区二区 | 91精品国产92久久久久 | 中文字幕免费观看 | 婷婷在线资源 | 高潮久久久久久久久 | 美女视频网| 日日夜夜精品免费 | 亚洲欧美激情精品一区二区 | 九九九视频在线 | 亚洲美女视频在线观看 | 五月婷婷一区二区三区 | av无限看| 国产精品久久麻豆 | 国产手机视频 | 国产成人性色生活片 | 日本一区二区不卡高清 | 欧美91av| 欧美视屏一区二区 | 99久久久久成人国产免费 | 日韩精品五月天 | 叶爱av在线 | 精品国产一区二区三区不卡 | 91精品在线观看入口 | 97精品在线 | 三级黄色网络 | 国产亚洲精品久久久久久无几年桃 | 尤物97国产精品久久精品国产 | 99精品国产一区二区三区不卡 | 日韩超碰在线 | 2024av| 国产一区在线精品 | 久草在线一免费新视频 | 国产成人免费 | 欧美日韩亚洲第一页 | 久久人人爽人人 | 国产手机av在线 | 91中文字幕一区 | 国产精品一区二区麻豆 | 国产一区二区综合 | av天天干 | 婷婷六月激情 | 久久精品牌麻豆国产大山 | 99热这里只有精品免费 | 999久久久国产精品 高清av免费观看 | 精品999| 九九精品视频在线看 | 久久久免费毛片 | 久精品视频在线 | 狠狠的日 | 99精品国产兔费观看久久99 | 国产成人精品一区在线 | 98精品国产自产在线观看 | 久草五月| 丁香久久激情 | www日韩在线观看 | 免费在线色 | 精品av在线播放 | 日韩高清免费无专码区 | 日韩一区正在播放 | 国产精品久久久久四虎 | 中文字幕国产精品一区二区 | 国产亚洲成av片在线观看 | 日韩av在线不卡 | 天天干天天摸天天操 | 国产一区av在线 | 亚洲国产人午在线一二区 | 综合久久久久久久久 | 国产精品欧美久久久久久 | 成年人在线看片 | 日韩18p| 18岁免费看片| 天天爽夜夜爽精品视频婷婷 | 欧美另类z0zx | www色| 国产精品网红直播 | 免费在线观看亚洲视频 | 91久久丝袜国产露脸动漫 | av电影免费看 | 成人av网站在线观看 | 国产精品热视频 | 日本精品久久久久久 | 性色av一区二区三区在线观看 | 天天操天天爱天天爽 | 欧美一级特黄aaaaaa大片在线观看 | 免费视频资源 | 日韩va在线观看 | 欧美一级看片 | av丝袜制服 | 夜夜高潮夜夜爽国产伦精品 | 日韩v在线 | 亚洲 欧美 91| 久久国产精品一区二区 | 欧美日韩国产综合一区二区 | 国产精品不卡在线观看 | 九九免费在线观看视频 | 丁香 婷婷 激情 | 国精产品满18岁在线 | 国产精品a成v人在线播放 | 人人狠狠综合久久亚洲 | 婷婷丁香花| 国产精品女同一区二区三区久久夜 | 天天爽夜夜爽精品视频婷婷 | 色婷婷狠狠 | 成人av片免费观看app下载 | 亚洲美女视频网 | 婷婷亚洲综合五月天小说 | 亚洲午夜久久久久久久久久久 | 久久视频在线看 | 丁香激情综合久久伊人久久 | 四虎成人免费影院 | 亚洲专区一二三 | 成片人卡1卡2卡3手机免费看 | 免费无遮挡动漫网站 | 亚洲久草在线视频 | 99热在线免费观看 | 美女网站色在线观看 | 欧美一级电影 | 在线观看日本高清mv视频 | 韩国在线一区二区 | 国产亚洲免费的视频看 | 午夜视频在线观看一区二区三区 | 国产成人综合在线观看 | 久久精品网站视频 | 精品伦理一区二区三区 | 玖玖爱国产在线 | 五月开心婷婷网 | 成人av日韩 | 国产在线污 | 九九精品久久 | 久草视频免费在线播放 | 免费激情网 | 热久久影视 | 久久久资源网 | 97在线精品 | 香蕉蜜桃视频 | 蜜桃av人人夜夜澡人人爽 | 中文在线中文资源 | 国产精品99久久久久久久久 | 亚洲成人精品影院 | 日本中文字幕在线免费观看 | 久久99爱视频 | 国产视频精选 | 在线导航福利 | av一本久道久久波多野结衣 | 日日夜夜骑| 欧美一级免费黄色片 | 日韩 在线 | 精品一区精品二区高清 | 免费看搞黄视频网站 | 久久精品免费观看 | 成人一区在线观看 | 欧美成人在线免费观看 | 91九色视频在线 | 天天噜天天色 | 夜夜高潮夜夜爽国产伦精品 | 日韩精品视频免费专区在线播放 | 国产第一二区 | 深夜免费福利网站 | 黄色免费网站下载 | 看毛片网站 | 国产手机视频 | 免费不卡中文字幕视频 | 日本久久成人中文字幕电影 | 精品福利片 | 色a4yy| 91亚洲精| 国产黄a三级 | 人人草在线视频 | 黄色网址中文字幕 | 二区视频在线观看 | 91av原创| 一区二区不卡在线观看 | www黄色com| 天堂在线成人 | 国产精品视频全国免费观看 | av在线免费观看黄 | 日韩av网页 | 韩国av一区二区三区在线观看 | 国产午夜不卡 | 中文字幕 国产 一区 | 国产高清区 | av免费网页 | 久久久96| 中文免费| 人人射人人澡 | 最新av电影网址 | 天天操夜夜操夜夜操 | 成人毛片一区 | 丰满少妇对白在线偷拍 | 欧美日韩一区二区免费在线观看 | 国产精品av免费观看 | 亚洲精品一区二区网址 | 人人狠 | 久久国产精品久久精品国产演员表 | 成人午夜网 | 国产免费视频一区二区裸体 | 欧美日韩免费一区二区三区 | 日韩在线观看一区 | 伊人久久av | 欧美日韩视频精品 | 国产中文欧美日韩在线 | 久久九九精品久久 | 97国产一区 | 成人毛片a | 日韩三级一区 | 97av.com| 国产v在线观看 | 久久中文网| 国产免费不卡av | 成人91在线 | 99久久婷婷国产精品综合 | 中文在线免费一区三区 | 亚洲另类人人澡 | 樱空桃av | 一区二区三区av在线 | 亚洲第一av在线播放 | 国产高清在线免费观看 | 色综合久久久网 | 中文区中文字幕免费看 | av天天色 | 97碰碰精品嫩模在线播放 | 国产在线精品国自产拍影院 | 91视频久久久 | 人人爱爱人人 | 成人h在线观看 | 婷婷丁香国产 | 91九色成人蝌蚪首页 | 国产精品一区二区久久精品爱涩 | 九九久久国产精品 | 一色屋精品视频在线观看 | 97国产精品 | 久久精品久久精品 | 99视频免费| 91欧美日韩国产 | 在线免费观看黄 | 色婷婷综合成人av | 99精品视频在线观看 | av 一区二区三区四区 | 免费99视频 | av免费在线观看1 | 亚洲婷婷综合色高清在线 | 一区二区三区四区免费视频 | 亚洲精品18日本一区app | 中文字幕乱码日本亚洲一区二区 | 狠狠操欧美 | 国产在线黄色 | 少妇性xxx | 国产91免费在线观看 | 国产99久久九九精品免费 | 国产精品2020 | av一级片在线观看 | 欧美精品视| 天天草天天爽 | 一级淫片在线观看 | 亚洲 欧美 综合 在线 精品 | 91九色蝌蚪在线 | 国产视频一二区 | 91新人在线观看 | 精品一区二三区 | 99亚洲国产 | 亚洲国产精品日韩 | 精品久久久久久亚洲综合网站 | 99久久这里有精品 | 亚洲一区二区精品视频 | 在线之家免费在线观看电影 | 午夜av色 | 国产综合福利在线 | 最新国产视频 | 久久99精品波多结衣一区 | 四虎在线免费观看视频 | 免费观看国产视频 | 99视 | 97精品国产aⅴ | 久久久精选| 91精品免费视频 | 日本h在线播放 | 黄色成人91 | 欧美日韩精品在线免费观看 | 成人福利在线播放 | 伊人黄 | 日韩在线观看视频一区二区三区 | 成人在线中文字幕 | 手机在线小视频 | 精品久久久久久久久久久久久久久久久久 | 久久黄色免费视频 | 99精品在线视频观看 | 亚洲综合激情小说 | av在线一二三区 | 超碰免费97 | 91看片淫黄大片一级在线观看 | 国产在线观看你懂得 | 免费福利小视频 | 丁香视频全集免费观看 | 久久综合九色综合欧美就去吻 | 91在线看视频免费 | 中文字幕在线观看第二页 | 日韩av片无码一区二区不卡电影 | 国产在线毛片 | 日韩中文字幕免费视频 | 国产精品毛片久久 | 玖玖999| 天天爽天天做 | 亚洲国产精品va在线看黑人 | 一区二区欧美激情 | 青青河边草免费 | 91视视频在线直接观看在线看网页在线看 | 亚洲年轻女教师毛茸茸 | 一区二区三区四区在线免费观看 | 日韩电影中文 | 国产精品久久久亚洲 | 一区二区三区视频在线 | 久久久免费观看完整版 | 亚洲春色成人 | 久9在线 | 在线精品国产 | 丁香六月在线 | 成人精品国产免费网站 | 国产精品一区二区av影院萌芽 | 正在播放亚洲精品 | 国产高清视频 | 俺要去色综合狠狠 | 国产午夜三级一区二区三桃花影视 | 久久久久久97三级 | 在线日韩视频 | 97成人超碰 | 亚洲精品午夜久久久久久久久久久 | 国产精品入口麻豆 | 日韩在线观看你懂的 | 亚洲第一中文字幕 | 精品免费久久久久久 | 日韩在线一区二区免费 | 久草精品视频 | 蜜桃视频成人在线观看 | 在线观看视频免费大全 | 日韩在线播放视频 | 四虎国产精品免费观看视频优播 | 国产99久久精品一区二区永久免费 | 亚洲黄色在线观看 | 亚洲国产美女久久久久 | 在线成人欧美 | 国产视频1 | 国产亚洲精品女人久久久久久 | 狠狠婷婷| 久久综合九色综合欧美就去吻 | 日本资源中文字幕在线 | 狠狠干夜夜操 | 久艹视频免费观看 | 黄色毛片视频免费观看中文 | 成人在线播放网站 | 不卡的av在线 | 国产五码一区 | www.亚洲视频.com | 97视频免费 | 美女网站久久 | 99r在线视频 | 中文字幕丰满人伦在线 | 欧美三人交 | 视频99爱| 中文字幕888 | 亚洲精品视频网 | 亚洲精品美女在线 | 狠狠的日 | 青青草国产在线 | 波多野结衣在线播放视频 | 成人超碰在线 | 久草电影在线观看 | 亚洲成aⅴ人片久久青草影院 | 久久成人福利 | 91久久国产露脸精品国产闺蜜 | 精品一区欧美 | 久久97久久 | 日韩久久精品 | 在线观看中文 | 国产精品一区二区三区在线播放 | 日韩高清在线一区二区 | 99久久精品视频免费 | 国产精品不卡av | 中文字幕在线视频一区二区三区 | 国产精品一区二区免费 | 久久精品福利视频 | 超碰在线98 | 色综合中文综合网 | 中文字幕a在线 | 精品国偷自产国产一区 | 日韩欧美一区二区三区在线观看 | av高清免费 | 97夜夜澡人人爽人人免费 | 欧美狠狠色 | 国产精品大片免费观看 | 国产综合视频在线观看 | 成人av一区二区在线观看 | 9999毛片 | 97视频人人 | 国产视频在 | 日韩区欧美久久久无人区 | 天天曰 | 久久免费高清 | 久久精品视频在线免费观看 | 91尤物国产尤物福利在线播放 | 久久国产片 | 日韩欧美高清视频在线观看 | 成人免费大片黄在线播放 | 国产精品久久久久永久免费看 | 91porny九色在线播放 | 色com网| 精品国产欧美一区二区 | 中文字幕在线播放一区二区 | 国产尤物在线观看 | 天干啦夜天干天干在线线 | 日韩精品一区二区三区免费观看 | 亚洲天天综合 | 黄色免费电影网站 | www.777奇米| 狠狠操狠狠干天天操 | 四虎www.| 一级淫片a | 久久 精品一区 | 国产中文字幕久久 | 91在线一区二区 | 丁香花在线观看免费完整版视频 | 人人天天夜夜 | 欧美日韩三级在线观看 | 天天久久夜夜 | 亚洲国产精品久久 | 国产精品完整版 | www五月 | 亚洲精品综合一区二区 | 国产精品乱码久久久久 | 亚洲永久精品在线观看 | 水蜜桃亚洲一二三四在线 | 国产福利91精品张津瑜 | 婷婷草| 婷婷精品在线视频 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产精品久久久久久久久久新婚 | 小草av在线播放 | www.狠狠干 | 国产高清免费av | 国产日韩精品久久 | 免费激情网| 黄色a大片| 亚洲成年人av | 亚洲伊人色 | 一区二区视频在线免费观看 | 免费网站在线观看成人 | 中文国产在线观看 | 久久精品欧美 | 日韩av黄| 中文字幕视频一区二区 | 日韩精品久久久 | 国产精品久久久久久久7电影 | 在线观看免费国产小视频 | 精品美女久久久久 | 狠狠色伊人亚洲综合网站色 | 久久久久久久久久久黄色 | 在线精品视频免费观看 | 娇妻呻吟一区二区三区 | 欧美成a人片在线观看久 | 黄在线免费看 | 西西444www| 久草免费在线观看 | 夜又临在线观看 | 操操操夜夜操 | 婷婷色综 | 免费国产在线观看 | 综合色影院| 欧美激情综合色综合啪啪五月 | 91精品国产乱码久久桃 | 中文字幕免费高清在线观看 | 91色影院| 激情伊人五月天久久综合 | 国产91精品一区二区麻豆网站 | 国产一级片免费视频 | 久久97久久 | 久久中文字幕在线视频 | 国产精品久久久久久久久久不蜜月 | 天天艹 | 97碰碰视频 | 日韩欧美精品一区二区 | 国产精品女同一区二区三区久久夜 | 午夜色大片在线观看 | 国产精品久久久久久久久久久久午夜片 | 永久免费精品视频 | 精品爱爱 | 毛片网站观看 | 久久精品国产免费看久久精品 | 在线视频成人 | 黄色毛片在线 | 99久久婷婷国产综合精品 | 国产免费影院 | 青草视频在线免费 | 免费的黄色的网站 | av3级在线 | 黄色.com| 91麻豆文化传媒在线观看 | 国产午夜精品免费一区二区三区视频 | 亚洲成人资源在线观看 | 99国产视频在线 | 亚洲精品中文字幕视频 | 亚洲国产精品成人精品 | 亚洲成人免费观看 | 免费中文字幕 | 狠狠色噜噜狠狠狠狠 | 国产精品久久麻豆 | 免费av一级电影 | 成人av免费在线观看 | 天天操,夜夜操 | 在线观看日本韩国电影 | 免费观看www7722午夜电影 | 日韩免费视频 | 伊人色**天天综合婷婷 | 国产黄色片久久 | 欧美日韩国产一区二区在线观看 | 日本女人逼 | 久久综合九色欧美综合狠狠 | 日韩欧美亚州 | 久久久久久久久久久高潮一区二区 | 成人蜜桃网 | 国产精品一区二区三区在线免费观看 | 成人a免费看 | 狠狠干狠狠久久 | 亚洲精品乱码久久久久久按摩 | 国产精品va在线播放 | 久久视频在线视频 | 国产三级久久久 | 久久综合久久综合久久综合 | 高清av不卡 | 精品久久久久久久久久久久久久久久 | 国产中年夫妇高潮精品视频 | 在线观看一级片 | 日韩av伦理片 | 国产成人免费在线 | 狠狠躁夜夜躁人人爽超碰91 | 97**国产露脸精品国产 | 亚洲一区日韩 | 国产精品久久久久久模特 | 成人免费观看a | 国产成人精品午夜在线播放 | 久久成人在线 | 国产精品99久久久久人中文网介绍 | 精品99在线视频 | 精品一区二三区 | 丁香六月五月婷婷 | 手机av资源| 欧美日韩一级久久久久久免费看 | 国产亚洲精品精品精品 | 国内精品亚洲 | 99在线精品观看 | 久久伊人五月天 | 欧美 激情在线 | 亚洲女人av | 国产一线二线三线性视频 | 婷婷色av| 成人sm另类专区 | 大荫蒂欧美视频另类xxxx | 天天干天天做 | 日韩精品在线播放 | 亚洲精品456在线播放第一页 | 色综合天天视频在线观看 | 人人干在线 | 久艹在线免费观看 | 国产免费成人av | 亚洲欧美视频网站 | 91午夜精品 | 激情网第四色 | 国产一二三四在线观看视频 | av在线免费不卡 | 男女靠逼app | 国产精品麻豆视频 | 人人舔人人干 | 国产护士hd高朝护士1 | 超碰免费久久 | 亚洲精品视频在线看 | 日韩大片在线播放 | 美女网站一区 | 亚洲四虎影院 | 国产精品二区在线 | 日韩一区视频在线 | av中文字幕在线电影 | 日韩在线第一 | 少妇高潮冒白浆 | 午夜精品导航 | 人人澡人人爱 | 天天摸天天舔天天操 | 亚洲在线网址 | 欧美了一区在线观看 | 亚洲国产黄色 | 成人免费视频网站 | 成人免费观看a | 久久久片 | 久久激五月天综合精品 | 国产精品毛片一区二区在线看 | 国产精品久久久久久电影 | 少妇性色午夜淫片aaaze | 亚洲精品国产精品国自产 | 久久dvd| 99精品视频免费观看 | 福利一区二区 | 欧美精品国产精品 | 亚洲aⅴ乱码精品成人区 | 99成人在线视频 | 五月婷婷综合网 | 女人高潮一级片 | 96av麻豆蜜桃一区二区 | 国产精品久久久久久久久久了 | 中文字幕电影高清在线观看 | 国产美女视频 | 亚洲日本三级 | 久久婷婷一区二区三区 | 中文字幕免费在线看 | 91久久国产露脸精品国产闺蜜 | 欧美动漫一区二区三区 | 日韩精品久久一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 日日干av | 午夜精品一区二区三区在线 | 欧洲激情综合 | 一区久久久 | 国产日产精品久久久久快鸭 | 91网在线看| 欧美成人精品欧美一级乱黄 | 天天操操 | 三级黄色大片在线观看 | www.久艹 | 91激情| 国产综合香蕉五月婷在线 | 欧美精品一区在线 | 91九色免费视频 | 欧美日韩免费看 | 国产无套精品久久久久久 | 久久艹人人 | 91免费试看| 在线成人高清电影 | 久久爱资源网 | 国产专区在线视频 | 99在线视频观看 | 8x成人免费视频 | 天天搞天天 | 香蕉视频啪啪 | 亚洲成人av在线播放 | 欧美a级在线播放 | 国产精品久久久久久久午夜片 | 亚洲欧美激情精品一区二区 | 男女啪啪网站 | 亚洲精品久久久久久中文传媒 | 久久9999久久免费精品国产 | 久久久精品久久日韩一区综合 | 国产美女免费看 | 日韩中文字幕一区 | 日韩欧在线 | 日韩美在线| 成人性生交大片免费观看网站 | 亚洲国产手机在线 | 综合久久婷婷 | 久久国产系列 | 狠狠的干狠狠的操 | 国产精品亚洲视频 | 久久一级片 | 国产91国语对白在线 | 久久成人18免费网站 | 国产精品亚洲成人 | 99久久精品国产毛片 | 美腿丝袜一区二区三区 | 麻豆一区在线观看 | 亚洲天堂精品视频 | 一区二区三区电影在线播 | 99久久激情视频 | 日本在线观看中文字幕 | 国产精品第54页 | 91久草视频| 久久婷婷一区 | 久久婷婷一区 | 久久国内精品99久久6app | 成人午夜电影网站 | 欧美色综合天天久久综合精品 | 午夜视频免费在线观看 | 超碰国产在线观看 | 99热.com | 久久艹免费 | av电影免费在线播放 | 在线电影91 | 91片在线观看| 日韩r级电影在线观看 | 久久综合五月 | www.狠狠| 在线观看www91 | 在线看毛片网站 | 探花视频在线版播放免费观看 | 日韩免费一区 | 操操色 | 男女拍拍免费视频 | 亚洲国产精品久久久久久 | 精品国产诱惑 | 欧美一级片在线播放 | 四虎国产精品永久在线国在线 | 四虎在线观看网址 | 91福利国产在线观看 | 亚洲国产精品久久久久 | 日日摸日日添夜夜爽97 | 我要色综合天天 | 精品国产电影一区 | www日日夜夜 | 国产精品69久久久久 | 国产精品婷婷 | 黄色小视频在线观看免费 | 欧美国产日韩在线视频 | 久久99国产精品久久99 | 五月花激情 | 91精品麻豆| 正在播放 久久 | 欧洲一区二区在线观看 | 日韩欧美一区二区三区视频 | 成人久久久久久久久久 | 日本性生活一级片 | 天天色天天艹 | 精品在线观看一区二区 | 亚洲日韩欧美一区二区在线 | 91欧美精品 | 日韩视频专区 | 91成人看片| 99国产情侣在线播放 | 国产福利一区二区三区在线观看 | 免费看v片 | 国产五码一区 | 精品国产乱码久久久久久天美 | 成人免费观看视频网站 | 日本中文字幕在线 | 国产激情久久久 | 黄色www免费 | 日韩在线观看视频一区二区三区 | 中文字幕在线看片 | 综合色播 | 日日草视频 | 日本xxxx裸体xxxx17 | 四虎免费在线观看视频 | 久久精品一二三区白丝高潮 | 日韩高清毛片 | 国产精品网红福利 | 久久精品国产99 | 久久在线影院 | 午夜色婷婷 | av国产网站 | 99热99re6国产在线播放 | 日韩精品在线视频 | av高清一区 | 日韩在线网址 | av成人黄色 | 日日夜夜天天 | 六月丁香婷婷久久 | 免费日韩 精品中文字幕视频在线 | 日本久久不卡视频 | 99久久久久 | 国内揄拍国产精品 | 91精品无人成人www | 天天摸天天舔天天操 | 精品国产a | 在线观看日本高清mv视频 | 天天色天天操天天爽 | 成人在线黄色电影 | 亚洲国产精品日韩 | 亚洲欧美激情精品一区二区 | 91亚洲狠狠婷婷综合久久久 | 久久综合精品国产一区二区三区 | 不卡精品视频 | 日韩免费在线看 | 日韩xxxx视频 | 天天插日日操 | 毛片精品免费在线观看 | 欧美成人理伦片 | 久久影院亚洲 | 五月婷av | 超碰av在线| 日本一区二区不卡高清 | 又黄又刺激的视频 | 亚洲精品综合一区二区 | 欧美激精品 | 最新日韩精品 | 九色91在线视频 | 日韩欧美69| 亚洲在线观看av | 青草视频在线免费 | 成年人电影免费看 | 高清色免费| 在线观看 国产 | 亚洲精品456在线播放第一页 | av手机版| 最新色站 | 精品久久久久久久久久 | 在线亚洲人成电影网站色www | 日韩精品在线一区 | 丰满少妇久久久 | 中文字幕亚洲在线观看 | 91看片淫黄大片一级在线观看 | 91久久在线观看 | 最近中文字幕完整视频高清1 | 国产高清不卡一区二区三区 | 久久久高清 | 国产在线高清视频 | 日韩免费三级 | 亚洲精品在线免费观看视频 | 欧美一区在线看 | 在线 国产 亚洲 欧美 | 久久久久久国产精品久久 | 综合久久久久久久 | 久久欧美在线电影 | 精品久久一 | 成人黄色大片在线观看 | 日韩在线三区 | 精品美女久久久久久免费 | 久久免费国产精品1 | 欧美一级性生活视频 | 国产精品一区二区在线 | 91色亚洲 | 深爱激情av | 91看片在线免费观看 | 伊人精品影院 | 久热av| 色噜噜噜噜 | 亚洲视频免费在线观看 | av在线收看 | 日韩精品极品视频 | www久草| 色网站黄| 中国一级片免费看 | 国产精品自在线拍国产 | 中文成人字幕 | 91在线免费视频 | 亚洲理论视频 | 国产精品一区专区欧美日韩 | 久草在线这里只有精品 | 操少妇视频| 国产在线播放不卡 | 久久草av | 精品久久久久久一区二区里番 | 久久视频在线观看 | 中文字幕在线观看国产 | 国产区免费 | 久热免费 | 五月婷婷久草 | 一区二区三区观看 | 国产视频99 | 免费看三级 | 麻豆激情电影 | 天天操天天干天天操天天干 | 国产露脸91国语对白 | 国产视频一区二区在线观看 | 国产成人av免费在线观看 | 国产在线国产 | 亚洲乱码精品久久久 | 国产精品va最新国产精品视频 | 久久一区二区三区国产精品 | 免费91麻豆精品国产自产在线观看 | 国产一区二区久久久 | 成人黄在线观看 | 日韩欧美一区二区三区黑寡妇 | 正在播放国产一区 | 免费视频区 | 97国产一区二区 | 91精品国自产在线 | 狠狠干夜夜爱 | 99re亚洲国产精品 | 国产精品久久久久aaaa | 日韩欧美在线一区二区 | 中文字幕在线观看第三页 | 国产午夜精品一区二区三区四区 | 久久人人97超碰精品888 | 在线免费看黄色 | a在线免费观看视频 | 69精品视频在线观看 | 国产91影院| 中文字幕一区av | 特级西西444www大精品视频免费看 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 免费在线观看成人av | www.久久久.cum | 亚洲精品视频免费在线 | 曰韩精品 | 91桃色视频| 国产999视频在线观看 | 亚洲 成人 欧美 | 亚洲区视频在线观看 | 国产精品久久久久久妇 | 久久久久久久毛片 | 五月激情丁香婷婷 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲春色奇米影视 | 97精品视频在线播放 | 国产精品久久久久久久电影 | 美女网站免费福利视频 | 亚洲免费观看视频 | 网站在线观看日韩 | 欧美a级片网站 | 久久好看免费视频 | 99视频在线精品免费观看2 | 日韩小视频网站 | 91丨九色丨蝌蚪丨对白 | 国产精品久久久久久久久岛 | 91禁在线看 | 在线黄色国产电影 | 久久久免费 | 99中文视频在线 | 色偷偷网站视频 | 国产黄a三级三级三级三级三级 | 天天天综合 | 国产精品免费视频网站 | 日韩av中文字幕在线 | 日韩成人一级大片 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 婷婷综合 | 91福利社在线观看 | 五月天av在线 | 国产日本亚洲 | 婷婷亚洲综合五月天小说 | 丁香av | 91成人在线视频观看 | 日本mv大片欧洲mv大片 | 亚洲经典视频 | 国产高h视频 | 97国产精品免费 | av亚洲产国偷v产偷v自拍小说 | 久久精品国产亚洲 | 成年人app网址 | 天天干人人 | www.香蕉视频在线观看 | 少妇超碰在线 | 亚洲国产精品日韩 | 国产精品av免费 | 欧美色插 | 网站在线观看日韩 | 亚洲精品短视频 | 在线观看国产www | 成人av在线直播 | 日韩精品一区二区三区高清免费 | 中文字幕日韩无 | 天堂网中文在线 | 中文字幕国产精品一区二区 | 日本中文在线观看 | 99tvdz@gmail.com| 久人人| 国产亚洲在线视频 | 久久国产露脸精品国产 | 精品国产乱码一区二 | 性色av免费看 | 黄色av电影网 | 国产福利专区 | 色婷婷狠狠 | 91网在线 | 精品国内自产拍在线观看视频 | 亚洲最大的av网站 | 欧美巨大荫蒂茸毛毛人妖 | 四川妇女搡bbbb搡bbbb搡 | 97超级碰碰碰视频在线观看 | 国产精品视频地址 | 91插插插网站 | 久久婷婷一区二区三区 | 国产1级毛片 | 久久久久久毛片精品免费不卡 | 国产人在线成免费视频 | 久草在线观看视频免费 | 亚洲国产精品久久久 | 成人资源在线播放 | 日韩久久久久久久久久久久 | 国内久久久久 | 97超碰精品| 日韩视频1区| 国产成人资源 | 国产xxxxx在线观看 | 97在线视频免费播放 | 一区二区三区四区免费视频 | 天天摸天天干天天操天天射 | 欧美激情精品久久久久久 | 成人午夜影院 | 国产在线最新 | 亚洲高清视频在线播放 | 最新av免费在线 | 亚洲a成人v | 国产中文字幕av | 久久免费99精品久久久久久 |