seleniumアナログ携帯ブラウザ操作clickクリック/tapタッチ要素無効の解決方法
私が直面した問題ログインボタンのxpathを取得する、xpathが正しいことを保証することができる .ログインボタンをクリックすると、ログイン成功ページ に正常にジャンプできません.ログインボタンをタッチすると、ログイン成功ページ に正常にジャンプできません.簡単で乱暴な方法 に登録することができます
WebdriverのKeys()クラスは、キーボード上のすべてのキーの操作を提供します.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
mobile_emulation = {"deviceName": "iPhone X"}
options = Options()
options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://xxx.com")
#
driver.find_element_by_xpath("//*[@id='email-login-input']/div/div[2]/input").send_keys("user")
driver.find_element_by_xpath("/html/body/div/div/div[2]/div[2]/div[2]/div[4]/div/div/div[2]/input").send_keys("password")
#
driver.find_element_by_xpath("/html/body/div/div/div[2]/div[2]/div[2]/button").click()
# ,
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.common.touch_actions import TouchActions
mobile_emulation = {"deviceName": "iPhone X"}
options = Options()
options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://xxx.com")
#
driver.find_element_by_xpath("//*[@id='email-login-input']/div/div[2]/input").send_keys("user")
driver.find_element_by_xpath("/html/body/div/div/div[2]/div[2]/div[2]/div[4]/div/div/div[2]/input").send_keys("password")
#
Action = TouchActions(driver)
loginButton = driver.find_element_by_xpath("/html/body/div/div/div[2]/div[2]/div[2]/button")
Action.tap(loginButton)
Action.perform()
# , ,
send_keys(Keys.ENTER)
を使用して、シミュレーションはリターンキーをクリックして、正常にfrom selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.common.keys import Keys
mobile_emulation = {"deviceName": "iPhone X"}
options = Options()
options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://xxx.com")
#
driver.find_element_by_xpath("//*[@id='email-login-input']/div/div[2]/input").send_keys("user")
driver.find_element_by_xpath("/html/body/div/div/div[2]/div[2]/div[2]/div[4]/div/div/div[2]/input").send_keys("password")
# “ ”, “ ”
loginButton = driver.find_element_by_xpath("/html/body/div/div/div[2]/div[2]/div[2]/button")
loginButton.send_keys(Keys.ENTER)
# “ ” , ,
WebdriverのKeys()クラスは、キーボード上のすべてのキーの操作を提供します.
from selenium.webdriver.common.keys import Keys
# keys 。
# :
send_keys(Keys.BACK_SPACE) # (BackSpace)
send_keys(Keys.SPACE) # (Space)
send_keys(Keys.TAB) # (Tab)
send_keys(Keys.ESCAPE) # (Esc)
send_keys(Keys.ENTER) # (Enter)
send_keys(Keys.CONTROL,'a') # (Ctrl+A)
send_keys(Keys.CONTROL,'c') # (Ctrl+C)