精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

鴻蒙自動化常見踩坑點及解決方法

系統(tǒng) 自動化
在做鴻蒙自動化測試時,經(jīng)常會碰到一些讓同學(xué)頭疼的問題,有時會阻礙很久,影響編寫自動化腳本進度,那么碰到這些阻礙點,我們該如何下手呢,下面羅列幾個常見的坑點機解決方案。

[[422395]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

在做鴻蒙自動化測試時,經(jīng)常會碰到一些讓同學(xué)頭疼的問題,有時會阻礙很久,影響編寫自動化腳本進度,那么碰到這些阻礙點,我們該如何下手呢,下面羅列幾個常見的坑點機解決方案

踩坑點一、在點擊方法使用的定位元素為非坐標(biāo)控件的情況時,獲取圖片方法無法截取到toast!

如何獲取toast樣式進行自動化?

1.步驟:

  • 截取toast樣式保存樣式圖片(點擊非元素坐標(biāo),無法獲取到toast圖片)
  • 踩坑點:使用gif錄制工具,計算點擊到彈出toast的時間,使用非元素坐標(biāo)點擊,無法獲取到toast截圖,正常邏輯思維,改變點擊到彈出toast的時間,始終無法獲取到toast圖片
  • 截取整個屏幕的圖片
  • 將樣式圖片與整體圖片進行對比驗證,樣式是否存在且一致

2.獲取圖片方法:

  1. def get_image(png_path, xy=None): 
  2.     ""
  3.     截圖,當(dāng)xy入?yún)⒂行r則進行裁剪 
  4.     :param png_path: 截圖的路徑 
  5.     :param xy: (x1,y1,x2,y2) 
  6.     :return
  7.     ""
  8.     conf.driver.get_screenshot_as_file(png_path) 
  9.     logger.debug("截屏成功"
  10.     if xy is not None: 
  11.         if isinstance(xy, tuple): 
  12.             for i in xy: 
  13.                 if isinstance(i, int): 
  14.                     pass 
  15.                 else
  16.                     logger.error("xy的入?yún)⒈仨毝际钦麛?shù)"
  17.                     raise (Exception, "xy的入?yún)⒈仨毝际钦麛?shù)"
  18.             try: 
  19.                 Image.open(png_path).crop(xy).save(png_path) 
  20.                 logger.debug("圖片[%s]裁剪成功,裁剪坐標(biāo)%s" % (png_path,xy)) 
  21.             except Exception as e: 
  22.                 logger.error("截圖失敗"
  23.                 raise e 
  24.         else
  25.             logger.error("xy的入?yún)⒏袷奖仨毷?nbsp;(x1,y1,x2,y2) "
  26.             raise (Exception, "xy的入?yún)⒏袷奖仨毷?nbsp;(x1,y1,x2,y2) "

3.創(chuàng)建文件名稱:

  1. expect_image = os.path.join(self.expect_images, "expect_Toast.png"
  2. assert_image = os.path.join(self.assert_images, "assert_Toast_001.png"
  3. success_image = os.path.join(self.success_images, "success_Toast_001.png"

4.圖片對比方法:

  1. def image_assert(img1, img2, image_path=None, threshold=0.95,cvformat=1): 
  2.     ""
  3.     斷言圖片img1是否在img2中,若斷言成功則會將圖片保存至本地 
  4.     !!! 斷言的圖片必須用appium截圖,可根據(jù)需求進行裁剪(該類下的get_image方法截圖即可) 
  5.     !!! 直接對模擬器手動截圖然后與appium的自動截圖做對比是無法匹配的,因為分辨率完全不同!!! 
  6.     :param img1: 預(yù)期的圖片 
  7.     :param img2: 用例執(zhí)行時的截圖 
  8.     :param image_path: 判斷后若斷言成功則會將對比后的圖片保存至本地,本地路徑,不入?yún)t不會生成對比圖 
  9.     :param threshold: 匹配度,建議大于0.9 
  10.     :param cvformat: 圖片轉(zhuǎn)換格式,入?yún)?-轉(zhuǎn)換為灰度圖片,入?yún)⒎?-轉(zhuǎn)換為RGB格式,對顏色有嚴(yán)格校驗需求的要轉(zhuǎn)成RGB格式 
  11.     :returnTrue or False 
  12.     ""
  13.     if not os.path.exists(img1): 
  14.         raise (Exception,"[%s]圖片不存在!" % img1) 
  15.     if not os.path.exists(img2): 
  16.         raise (Exception, "[%s]圖片不存在!" % img2) 
  17.     scale = 1 
  18.     img = cv2.imread(img2)  # 要找的大圖 
  19.     img = cv2.resize(img, (0, 0), fx=scale, fy=scale) 
  20.     template = cv2.imread(img1)  # 圖中的小圖 
  21.     template = cv2.resize(template, (0, 0), fx=scale, fy=scale) 
  22.     template_size = template.shape[:2] 
  23.     if int(cvformat) == 1: 
  24.         img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
  25.         template_ = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY) 
  26.     else
  27.         img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 
  28.         template_ = cv2.cvtColor(template, cv2.COLOR_BGR2RGB) 
  29.     result = cv2.matchTemplate(img_gray, template_, cv2.TM_CCOEFF_NORMED) 
  30.     loc = np.where(result >= threshold) 
  31.     # 使用灰度圖像中的坐標(biāo)對原始RGB圖像進行標(biāo)記 
  32.     point = () 
  33.     for pt in zip(*loc[::-1]): 
  34.         cv2.rectangle(img, pt, (pt[0] + template_size[1], pt[1] + template_size[0]), (0, 0, 255), 2) 
  35.         point = pt 
  36.     if point == (): 
  37.         logger.debug("圖片[%s]在圖片[%s]中沒有匹配到" % (img1, img2)) 
  38.         return False 
  39.     else
  40.         if image_path is not None: 
  41.             cv2.imwrite(image_path, img, [int(cv2.IMWRITE_PNG_COMPRESSION), 3])  # 將圖片保存到本地 
  42.         logger.debug("圖片[%s]在圖片[%s]中成功匹配到" % (img1, img2)) 
  43.         return True 

5.點擊方法:

  1. def ta_tap(self, selector, wait_presence=0, wait_visibility=0, timeout=20): 
  2.     ""
  3.     模擬手指點擊一個元素或坐標(biāo) 
  4.     :param selector: 點擊的元素,定位器,要求格式為["元素名稱","定位方法","定位表達(dá)式"],例如["XXX按鈕","XPATH","//a[@text=‘測試定位’]"],["XXX按鈕","ID","username"
  5.     :param wait_presence: 是否需要等待元素加載,0-不需要,1-需要 
  6.     :param wait_visibility: 是否需要等待元素可見,0-不需要,1-需要 
  7.     :param timeout: 等待的時間,默認(rèn)20秒 
  8.     :return
  9.     ""
  10.     if selector: 
  11.         try: 
  12.             locator_name = selector[0] 
  13.             locator_by = str(selector[1]).upper()  # 定位方式 
  14.             locator_value = str(selector[2])  # locator的值 
  15.         except Exception as e: 
  16.             logger.error("ta_tap方法:selector入?yún)⒏袷奖仨毷莑ist<string>,[元素名稱,定位方法,定位表達(dá)式]"
  17.             raise e 
  18.         if str(wait_presence) == "1" and str(wait_visibility) == "1"
  19.             logger.warning("ta_tap方法:請不要同時使用等待元素加載和等待元素可見!!!"
  20.         if locator_by == "XY"
  21.             try: 
  22.                 x, y = int(locator_value.split(",")[0]), int(locator_value.split(",")[1]) 
  23.             except Exception as e: 
  24.                 logger.error("XY坐標(biāo)值格式錯誤,正確格式:x,y"
  25.                 raise e 
  26.             TouchAction(conf.driver).tap(x=x, y=y).release().perform() 
  27.             logger.debug("ta_tap模擬手指點擊元素:(%s,%s)" % (x, y)) 
  28.         elif locator_by == "XY%"
  29.             phonesize = self.get_phone_size() 
  30.             phonewidth = phonesize["width"
  31.             phoneheight = phonesize["height"
  32.             try: 
  33.                 x, y = float(locator_value.split(",")[0]), float(locator_value.split(",")[1]) 
  34.             except Exception as e: 
  35.                 logger.error("XY坐標(biāo)值格式錯誤,正確格式:x,y-x和y均是小數(shù)(不要填寫百分比),例如0.8,0.5"
  36.                 raise e 
  37.             TouchAction(conf.driver).tap(x=int(x * phonewidth), y=int(y * phoneheight)).release().perform() 
  38.             logger.debug("ta_tap模擬手指點擊元素:(%s,%s)" % (x * phonewidth, y * phoneheight)) 
  39.         else
  40.             if str(wait_presence) == "1"
  41.                 self.wait_element_presence(selector, timeout) 
  42.             if str(wait_visibility) == "1"
  43.                 self.wait_element_visibility(selector, timeout) 
  44.             try: 
  45.                 el = self.xlsxfind_element(selector) 
  46.                 TouchAction(conf.driver).tap(el).release().perform() 
  47.                 logger.debug("ta_tap模擬手指點擊%s" % locator_name) 
  48.             except Exception as e: 
  49.                 logger.error("tap方法異常,元素名稱%s" % locator_name) 
  50.                 raise e 
  51.     else
  52.         raise Exception("wait_element_presence方法:selector參數(shù)是必須的"

6.示例:

鴻蒙自動化常見踩坑點及解決方法-鴻蒙HarmonyOS技術(shù)社區(qū)

踩坑點二、appium版本在1.5以后就不再支持ByName的定位

appium版本在1.5以后就不再支持ByName的定位,在appium1.6.3/1.6.4/1.6.5版本以后如何支持ByName定位,適用于安卓,同樣適用于鴻蒙。在使用appium1.5之后的版本時,當(dāng)我們直接適用ByName方式去查找控件時,一定見過這個錯誤:

  1. org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session 

發(fā)現(xiàn)曾經(jīng)的定位神器居然ByName居然不再支持了,那么怎么解決這個問題呢?以下提供兩種解決方式:

  • 換其他定位方式,比如用xpath代替
  • 使用ByAByAccessibilityId代替,但實踐證明這個方法并沒有取代ByName

其中第一種是可取的,換其他定位方式,下面給大家一個不用換定位方式,可以無縫解決ByName在升級appium版本定位方法

一招修改源碼解決問題根源,修改方法如下:

在本地找到Appium路徑下的driver.js文件

  1. Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\build\lib\driver.js 

只需要修改其中一行即可

鴻蒙自動化常見踩坑點及解決方法-鴻蒙HarmonyOS技術(shù)社區(qū)

打開driver.js文件

鴻蒙自動化常見踩坑點及解決方法-鴻蒙HarmonyOS技術(shù)社區(qū)

在代碼行加上“name”屬性

  1. this.locatorStrategies = ['xpath''id''class name''accessibility id''-android uiautomator','name']; 

 修改完成之后,保存,再次重啟appium服務(wù),就可以繼續(xù)使用ByName定位啦

  1. element = conf.driver.find_element_by_name("name").click() 

如果不想用這種方式,也可以使用通用xpath

  1. element = conf.driver.find_element_by_xpath("//*[@text='name']").click() 

踩坑點三、彈窗點擊確認(rèn)或選擇選項后,出現(xiàn)腳本無法往下執(zhí)行的問題

遇到這種問題時,可以通過坐標(biāo)點擊頁面彈窗,再點擊空白處來釋放,就可以繼續(xù)往下執(zhí)行

如desCharts組件在彈窗切換圖表類型后,腳本會卡住,可以通過坐標(biāo)點擊一個不影響功能的彈窗,再點擊空白處讓彈窗消失,腳本就可以繼續(xù)往下執(zhí)行:

  1. def exchange(self, elements, chart): 
  2.     ""
  3.     切換圖表選項(彈窗選擇后腳本會卡住,需要釋放) 
  4.     ""
  5.     self.ta_tap(elements["圖表切換選項"]) 
  6.     if chart in ["堆疊折線圖""柱狀圖""堆疊柱狀圖"]: 
  7.         self.swipe_xy(452, 680, 450, 150) 
  8.         time.sleep(1) 
  9.     self.ta_tap(elements[chart]) 
  10.     time.sleep(1) 
  11.     self.ta_tap(elements["釋放屏幕坐標(biāo)"]) 
  12.     time.sleep(1) 
  13.     self.ta_tap(elements["釋放屏幕坐標(biāo)"]) 
  14.     time.sleep(1) 

踩坑點四、在滾動功能無法使用時,需要滑動列表到特定位置。Appium的swipe此時不好用,drag_and_drop方法無法使用坐標(biāo)點。

解決方法:

1.重寫drag_and_drop方法,使它可以使用坐標(biāo)點

  1. def drag_and_drop(self, origin_el: Union["WebElement""dict"], destination_el: Union["WebElement""dict"]): 
  2.     action = TouchAction(self) 
  3.     if isinstance(origin_el, dict): 
  4.         action.long_press(**origin_el) 
  5.     else
  6.         action.long_press(origin_el) 
  7.     if isinstance(destination_el, dict): 
  8.         action.move_to(**destination_el) 
  9.     else
  10.         action.move_to(destination_el) 
  11.     action.release().perform() 
  12.     return self 

 2.示例:

  1. @allure.story("MusicBobber"
  2. @allure.title("MusicBobber_015"
  3. @allure.tag("L1"
  4. @allure.severity("normal")  # blocker:阻塞缺陷 critical:嚴(yán)重缺陷 normal:一般缺陷 minor:次要缺陷 trivial:輕微缺陷 
  5. @allure.description("刪除懸浮掛件"
  6. @pytest.mark.flaky(reruns=1, reruns_delay=5)  # reruns:重試次數(shù) reruns_delay:重試的間隔時間 
  7. def test_MusicBobber_015(self, allow): 
  8.     logger.info("MusicBobber_015"
  9.  
  10.     with allure.step("按返回鍵"): 
  11.         logger.info("按返回鍵"
  12.         self.keyboard(4) 
  13.         time.sleep(1) 
  14.  
  15.     with allure.step("刪除懸浮掛件"): 
  16.         logger.info("刪除懸浮掛件"
  17.         self.drag_and_drop({x:74, y:176}, {x:540, y:2048}) 
  18.         time.sleep(0.5) 
  19.  
  20.     with allure.step("驗證"): 
  21.         logger.info("驗證"
  22.         expect_image = os.path.join(self.expect_images, f"expect_MusicBobber_015.png"
  23.         assert_image = os.path.join(self.assert_images, f"assert_MusicBobber_015.png"
  24.         contrast_images = os.path.join(self.contrast_images, f"contrast_MusicBobber_015.png"
  25.         self.get_image(contrast_images) 
  26.         flag = self.image_assert(expect_image, contrast_images, assert_image) 
  27.         self.image_in_report(flag, assert_image, expect_image) 
  28.         assert flag is False 

結(jié)語

其實,在UI自動化實踐中我們還會遇到其他不同的阻礙點,Appium本身就存在一些bug,鴻蒙應(yīng)用的自動化與安卓原理基本一致,我們都是在

摸索中前行,所以,碰到坑點不要慌,在原生不支持的情況下,換一種解決方式,也會使你豁然開朗,希望以上幾個問題點及解決方案能對你有所幫助

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-09-06 08:00:00

數(shù)字化轉(zhuǎn)型IT自動化

2021-04-20 11:03:26

人工智能AI機器學(xué)習(xí)

2011-04-29 13:22:48

ThinkPad筆記本故障

2011-05-06 17:25:58

硒鼓

2018-11-01 15:26:38

開源軟件安全

2025-04-07 07:20:35

SQL慢查詢性能

2009-03-04 10:38:36

Troubleshoo桌面虛擬化Xendesktop

2011-06-16 10:27:55

.NET內(nèi)存泄漏

2010-08-31 09:13:00

margin-top

2010-08-31 13:49:12

CSS

2009-08-24 10:37:11

Silverlight

2022-04-06 10:09:17

云服務(wù)云計算

2010-08-10 10:10:34

Flex內(nèi)存泄露

2021-03-26 10:06:42

IT自動化自動化首席信息官

2021-10-28 19:10:02

Go語言編碼

2016-09-23 20:46:53

2012-11-19 11:30:40

PowerShell常見問題解決方法

2018-05-29 11:44:22

數(shù)據(jù)庫MySQL死鎖

2020-05-18 08:58:33

Python開發(fā)工具

2022-03-04 11:24:16

工業(yè)4.0工業(yè)物聯(lián)網(wǎng)
點贊
收藏

51CTO技術(shù)棧公眾號

欧美肉体xxxx裸体137大胆| 9lporm自拍视频区在线| 麻豆国产精品777777在线| 色婷婷**av毛片一区| 奇米影音第四色| 18网站在线观看| 97国产精品videossex| 国产精品h片在线播放| 一级性生活免费视频| 国产精东传媒成人av电影| 色婷婷av一区二区三区gif| 一区二区三区我不卡| 老牛影视av牛牛影视av| 日韩黄色免费电影| 久久97精品久久久久久久不卡 | 热久久久久久久| 欧美精品中文字幕一区| 91精品人妻一区二区三区蜜桃欧美 | 欧美午夜网站| 色综合久久中文字幕| 三年中文高清在线观看第6集| 粉嫩小泬无遮挡久久久久久| 老牛国产精品一区的观看方式| 日韩视频一区在线| 国产国语性生话播放| 日本午夜精品久久久久| 精品久久久久久久久久国产 | 欧美大人香蕉在线| 日韩av在线直播| 欧美一级特黄aaa| 三妻四妾完整版在线观看电视剧| 综合婷婷亚洲小说| 欧美日韩无遮挡| www.色视频| 久久激情综合网| 2020久久国产精品| 欧美精品videos极品| 欧美理论电影大全| 日韩电影免费在线观看中文字幕| 91丝袜超薄交口足| 成人va天堂| 午夜视频一区在线观看| 在线精品日韩| 第三区美女视频在线| 99久久er热在这里只有精品15 | 又骚又黄的视频| 午夜在线精品偷拍| 国语自产在线不卡| www青青草原| 欧美亚洲在线日韩| 亚洲欧洲免费视频| 性欧美成人播放77777| 国产精品任我爽爆在线播放| 日韩欧美国产综合一区| 久久婷婷中文字幕| 先锋影音一区二区| 欧美精品粉嫩高潮一区二区| 成人亚洲视频在线观看| 9i看片成人免费高清| 亚洲成人av一区| 精品无码一区二区三区爱欲| 青青青国内视频在线观看软件| 亚洲色图在线播放| a级网站在线观看| 精品自拍一区| 亚洲精品国产精华液| www.-级毛片线天内射视视| 日本视频在线播放| 成人免费在线观看入口| 超碰免费在线公开| h片在线免费观看| 亚洲黄色免费电影| 青青青在线观看视频| 欧美大胆的人体xxxx| 夜夜嗨av一区二区三区网页| 日韩极品视频在线观看| 91九色国产在线播放| 午夜精品福利久久久| 国产视频一视频二| 88xx成人永久免费观看| 欧美在线观看视频在线| 中文字幕22页| 国产午夜精品一区在线观看| 日韩精品专区在线影院重磅| 国产高清成人久久| 一本色道久久综合亚洲精品酒店 | 熟女人妻在线视频| 一区二区三区视频免费观看| 国产香蕉精品视频一区二区三区| 久久久久久成人网| 久久精品欧美一区| 久久久久久网址| 五月天激情四射| 久久成人综合网| 97久草视频| 日产精品久久久久久久性色| 日本一区二区三级电影在线观看 | 日韩欧美在线免费观看| 国产真人无码作爱视频免费| 日韩大陆av| 欧美精品一区二区三区四区 | 欧美 日韩 国产 高清| 一区二区三区四区日本视频| 欧美精品粉嫩高潮一区二区| 人体私拍套图hdxxxx| 欧美亚洲国产激情| 久久久伊人日本| 亚洲永久精品一区| 国产suv精品一区二区6| 人禽交欧美网站免费| a级片国产精品自在拍在线播放| 婷婷久久综合九色国产成人| 亚洲精品久久久中文字幕| 视频成人永久免费视频| 亚洲欧美视频在线| 一区二区成人免费视频| 久久成人亚洲| 99在线看视频| 第一页在线观看| 亚洲成年人网站在线观看| www.夜夜爽| 私拍精品福利视频在线一区| 欧美另类老女人| 亚洲精品国产欧美在线观看| 成人免费视频视频在线观看免费| 亚洲春色综合另类校园电影| 超碰资源在线| 日韩一区二区三区视频在线观看| 亚洲欧洲久久久| 影音先锋亚洲精品| 99re国产| 国产一二区在线观看| 在线精品视频免费观看| 一区二区不卡免费视频| 欧美在线黄色| 亚洲精品免费网站| 中文字幕在线播放| 日本高清不卡aⅴ免费网站| 亚洲av熟女高潮一区二区| 天天影视天天精品| 国产精品一二区| 免费a在线观看| 午夜不卡在线视频| wwwxx日本| 欧美日韩一卡| 91夜夜揉人人捏人人添红杏| 午夜免费视频在线国产| 在线观看91视频| 中国毛片在线观看| 久久精品国语| 蜜桃网站成人| 女人让男人操自己视频在线观看| 日韩视频免费观看高清完整版| 亚洲一二三四五六区| 麻豆国产精品一区二区三区 | 国产综合自拍| 成人激情直播| 国精一区二区三区| 精品国产一区a| 不卡的免费av| 99精品视频在线免费观看| 给我免费播放片在线观看| 91成人午夜| 午夜精品一区二区三区在线视频| 欧美一级淫片免费视频魅影视频| 亚洲午夜三级在线| 日本一卡二卡在线| 性一交一乱一区二区洋洋av| 蜜桃导航-精品导航| 另类专区亚洲| 中文字幕亚洲一区在线观看 | 激情六月婷婷综合| 91精品国产毛片武则天| 99re8这里有精品热视频8在线| 欧美极度另类性三渗透| 国产女人水真多18毛片18精品 | 欧美一区三区三区高中清蜜桃| 天天射天天操天天干| 欧美日韩在线第一页| 日韩一区二区a片免费观看| 免费不卡在线观看| 一区二区三区在线视频111| 国产精品一区二区三区www| 欧美人在线视频| 五月婷婷综合久久| 91成人在线观看喷潮| 自拍偷拍第9页| 高清国产一区二区| 99久久久无码国产精品6| 精品视频99| 亚洲一区中文字幕在线观看| heyzo高清中文字幕在线| 亚洲欧美视频在线| 国产人妖一区二区| 午夜久久久久久久久久一区二区| 中文字幕被公侵犯的漂亮人妻| 久久精品国产久精国产| 国产成a人亚洲精v品在线观看| 香蕉视频一区二区三区| 国产精品日韩一区| 青青草原av在线| 国产性色av一区二区| 国产强伦人妻毛片| 欧美视频在线看| 免费在线观看h片| 91亚洲国产成人精品一区二三 | 国内精品伊人久久久久av一坑| 国产一区二区四区| 成人免费在线播放| 91精品中文在线| 日本免费一区二区六区| 久久久国产91| 黄色在线免费观看大全| 欧美成人vps| 中文字幕第三页| 亚洲午夜视频在线| 四虎永久免费地址| 久久午夜老司机| 韩国三级在线看| 久久国产日韩欧美精品| 成人av一级片| 自拍日韩欧美| 亚洲激情一区二区三区| 久久夜色电影| 成人欧美一区二区三区黑人免费| 国产精品4hu.www| 欧美专区福利在线| 高h视频在线播放| 久久伊人91精品综合网站| 精品久久av| 日韩激情av在线播放| 高h震动喷水双性1v1| 91麻豆精品国产91久久久久久久久 | 一级特黄大欧美久久久| 久艹在线观看视频| 欧美高清在线一区二区| 少妇精品一区二区三区| a美女胸又www黄视频久久| 无码人妻丰满熟妇区毛片蜜桃精品| 美女国产一区二区| 91国产精品视频在线观看| 日日夜夜免费精品视频| 99精品人妻少妇一区二区| 影音先锋久久| 131美女爱做视频| 樱桃成人精品视频在线播放| 久无码久无码av无码| 亚洲综合自拍| 草草草视频在线观看| 综合在线视频| 黄色污污在线观看| 影视一区二区| 国产91在线亚洲| 欧美特黄一区| 真实国产乱子伦对白视频| 亚洲男女av一区二区| 中文字幕一区二区三区乱码 | 国产精品久久精品视| 伊人久久综合一区二区| 午夜欧美不卡精品aaaaa| 午夜激情在线| 久久久伊人欧美| 91九色美女在线视频| 国内伊人久久久久久网站视频| 高清毛片在线观看| 97久久精品人搡人人玩| h片精品在线观看| 欧美在线不卡区| 91av亚洲| 国产精品扒开腿做爽爽爽男男| 麻豆免费在线| 日韩美女av在线免费观看| 亚洲承认视频| 日本成人在线视频网址| 在线成人视屏| 国产精品日韩在线一区| 国外成人福利视频| 亚洲影院污污.| 日韩一区二区三区高清在线观看| 91福利入口| 欧美自拍视频| 日韩国产一区久久| 成人3d精品动漫精品一二三| 艳母动漫在线免费观看| 日本在线影院| 久久福利资源站| 日本中文字幕影院| 国产99精品视频| 久久精品老司机| 国产精品视频在线看| 少妇av片在线观看| 亚洲美女精品一区| 国产在线视频卡一卡二| 91福利资源站| 国产精品毛片一区二区在线看舒淇| 91精品国产乱码久久蜜臀| 欧美 日韩 国产 精品| 亚洲欧洲在线免费| 日韩伦理在线电影| 91精品国产91久久久久| 成人va天堂| 3d精品h动漫啪啪一区二区| 五月国产精品| 亚洲一区三区| 精品成人国产| 中文字幕免费高清在线| 成人免费av资源| 国产综合精品在线| 一区二区三区在线视频免费观看| 日本视频免费在线| 欧美色图一区二区三区| 天堂网av2014| 色香阁99久久精品久久久| 欧美伦理免费在线| 国产精品黄视频| 亚洲精品v亚洲精品v日韩精品| 久久66热这里只有精品| 中文字幕一区二区三区欧美日韩| 国产精品又粗又长| 美女视频第一区二区三区免费观看网站| 国产51自产区| 国产日韩欧美精品在线| 久久免费在线观看视频| 欧美日韩一区二区三区在线| 欧美 日韩 国产 成人 在线| 一区二区欧美激情| 在线免费看h| 91成人伦理在线电影| 国产成人三级| av在线观看地址| 久久精品国产99| 精品人妻无码一区| 亚洲一区二区在线播放相泽 | 亚洲国产视频一区| 伊人精品在线视频| 日韩大片在线观看视频| а√资源新版在线天堂| 国产精品扒开腿做| 美女视频免费精品| 日本欧美视频在线观看| 国产最新精品精品你懂的| 国产男男chinese网站| 亚洲444eee在线观看| www.色播.com| 久久婷婷国产麻豆91天堂| 日韩毛片网站| 日本婷婷久久久久久久久一区二区 | 91麻豆精品国产91久久久久| 丁香在线视频| 日本视频久久久| 日韩欧美中文字幕电影| 精品这里只有精品| 成人午夜伦理影院| 久久综合成人网| 欧美一级二级三级乱码| 天堂地址在线www| 国产自摸综合网| 久久国产亚洲| 日本熟妇人妻中出| 中文字幕国产一区| 黄色大全在线观看| 精品国产乱码久久久久久久久| 国产蜜臀一区二区打屁股调教| 亚洲精品欧美一区二区三区| 中文字幕日韩一区二区不卡| 日本高清久久久| ●精品国产综合乱码久久久久| 国产又大又黑又粗| 久久夜色撩人精品| 日韩精品成人| 国产日本在线播放| 成人午夜又粗又硬又大| 韩国av中文字幕| 亚洲欧洲国产伦综合| 日本.亚洲电影| 日韩视频在线观看视频| 国产大陆a不卡| 一区二区三区视频免费看| 亚洲电影成人av99爱色| 末成年女av片一区二区下载| 欧美在线一二三区| 日韩高清欧美激情| 天堂在线中文视频| 7777精品伊人久久久大香线蕉最新版| aaa在线观看| 亚洲jizzjizz日本少妇| 精品电影一区| 国产福利短视频| 欧美亚洲动漫制服丝袜| www.在线视频| 国产一区二区三区无遮挡| 日韩精品免费视频人成| 成年人视频软件| 日韩欧美一二三| h片在线观看下载| 日韩欧美手机在线| 欧美a级一区二区| 操她视频在线观看| 亚洲高清久久久久久| 国产亚洲欧美日韩精品一区二区三区 |