簡體   English   中英

如何使用 Selenium 點擊輸入

[英]How click in input with Selenium

我有一個問題,我正在嘗試制作一個自動登錄到此站點的腳本https://www.nike.com.br/cosmic-unity-153-169-211-324680問題是幾秒鍾后此頁面加載,您必須 select 鞋子的大小,然后單擊寫有“Faça login para comprar”的按鈕 ok,在我的機器人點擊那里后,它會打開一個彈出窗口,我必須通知我的 email 和密碼,然后點擊登錄按鈕,問題是我正在嘗試,我無法點擊輸入來填寫 email 和密碼,我也無法點擊登錄按鈕,我相信可能是因為它是在一個 div 里面

我的代碼:

from selenium.webdriver.chrome.options import Options                                           
from selenium.webdriver.support import expected_conditions as EC                                
from selenium.webdriver.common.by import By    
from selenium.webdriver.common.keys import Keys                                                 

option = Options()                              
prefs = {'profile.default_content_setting_values': {'images': 2}}                                
option.add_experimental_option('prefs', prefs)  
driver = webdriver.Chrome(options = option)   
driver.get("https//www.nike.com.br/cosmic-unity-153-169-211-324680")                           
wait = WebDriverWait(driver, 10)                 
wait.untilEC.element_to_be_clickable((By.CSS_SELECTOR, '.cc-allow'))).click()       
wait.until(EC.element_to_be_clickable((By.XPATH, '//label[@for="tamanho__id40"]'))).click()    
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button#anchor-acessar-unite-oauth2'))).click()                                         
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'input#9f656f67-dbed-4cda-be83-0d0d0addc6f4'))).send_keys("test@gmail.com")                                             
wait.untillEC.element_to_be_clickable((By.CSS_SELECTOR, 'input#7016e824-f431-43d0-b5c9-d0331c330014'))).send_keys("mypass")                   
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button#a7f38f9a-afd7-42ce-a978-314a7d484343'))).click()

訂購此代碼並意識到它僅在您打開登錄彈出窗口之前有效,之后它會生成此錯誤:

selenium.common.exceptions.TimeoutException: Message:**

該彈出窗口位於 iframe 內,您需要將驅動程序焦點切換到特定的 iframe。

wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID,"nike-unite-oauth2-iframe")))

確保在完成該彈出式開關后切換到 default_content 以繼續進行。

driver.switch_to.default_content()

更新1:

driver = webdriver.Chrome("C:\\Users\\etc\\Desktop\\Selenium+Python\\chromedriver.exe")
driver.maximize_window()
wait = WebDriverWait(driver, 30)
driver.get("https://www.nike.com.br/cosmic-unity-153-169-211-324680")
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.cc-allow'))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//label[@for='tamanho__id40']"))).click()
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button#anchor-acessar-unite-oauth2'))).click()
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID,"nike-unite-oauth2-iframe")))
wait.until(EC.element_to_be_clickable((By.NAME, 'emailAddress'))).send_keys("test@gmail.com")
wait.until(EC.element_to_be_clickable((By.NAME, 'password'))).send_keys("mypass")
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[value='ENTRAR']"))).click()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM