chrome手機wap模式登陸淘寶頁面,點擊驗證碼無效問題解決。
切換到wap模式,使用TouchActions模塊用tap方法觸摸web
個人環境chrome
1.登陸手機版淘寶時候,驗證碼沒法經過點擊事件觸發
[wap版淘寶](https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0)url
1.按f12,點下圖按鈕(Toggle device toolbar)切換成手機模式3d
2.切換成手機模式後發現輸入手機號後,手動操做是能夠觸發驗證碼的code
1.添加Options配置,設置成手機模式訪問orm
# coding:utf-8 from selenium import webdriver from selenium.webdriver.chrome.options import Options url = "https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0" mobile_emulation = {"deviceName":"iPhone 6"} options = Options() options.add_experimental_option("mobileEmulation", mobile_emulation) driver = webdriver.Chrome(chrome_options=options) driver.get(url)
2.這裏的deviceName點開設備選項,選擇一個手機設備名稱htm
1.這裏輸入手機號後,用click點‘獲取驗證碼’是無效的,這時候須要換個思惟,用TouchActions裏面的tap觸摸方式去觸發‘獲取驗證碼’按鈕blog
2.TouchAction裏面的幾個用法事件
class TouchAction(object): def __init__(self, driver=None): self._driver = driver self._actions = [] def tap(self, element=None, x=None, y=None, count=1): 模擬手指觸摸屏 def press(self, el=None, x=None, y=None): 短按:模擬手指按住一個元素,或者座標 def long_press(self, el=None, x=None, y=None, duration=1000): 長按:模擬按住一個元素,或者座標 def wait(self, ms=0): 按住元素後的等待時間 def move_to(self, el=None, x=None, y=None): 移動手指到另一個元素,或者座標,注意這裏座標不是絕對座標,是偏移量 def release(self): 釋放手指 def perform(self): 執行前面的動做
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.touch_actions import TouchActions from selenium.webdriver.chrome.options import Options url = "https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0" # 設置成手機模式 mobile_emulation = {"deviceName":"iPhone 6"} options = Options() options.add_experimental_option("mobileEmulation", mobile_emulation) driver = webdriver.Chrome(chrome_options=options) driver.get(url) driver.find_element_by_id("username").send_keys("yoyoketang") # 觸摸事件 el = driver.find_element_by_id('getCheckcode') TouchActions(driver).tap(el).perform()
seleniumQQ羣:646645429utf-8