[英]How to fix selenium web driver 'exception error' with python
我正在創建一個機器人,以在Chrome瀏覽器上使用帶有硒網絡驅動程序的Python和質子郵件作為電子郵件服務來批量創建電子郵件帳戶。 當測試到達表單頁面以填寫您的電子郵件地址等時,我在預填表單字段時遇到問題,並且在終端上收到此錯誤。
引發TimeoutException(消息,屏幕,堆棧跟蹤)selenium.common.exceptions.TimeoutException:消息:
我嘗試增加等待時間,但是沒有運氣。 我正在使用send_keys來預填充字段,但沒有運氣。 下方代碼中顯示的測試均有效,除了最后一個命中表單頁面以預填充電子郵件用戶名的測試。
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
url = 'https://protonmail.com/'
driver = webdriver.Chrome(
'/Users/[MYNAME]/Downloads/chromedriver')
driver.get(url)
signUp = WebDriverWait(driver, 5).until(
EC.visibility_of_element_located((By.XPATH, '//* .
[@href="signup"]')))
signUp.click()
panel = WebDriverWait(driver, 5).until(
EC.element_to_be_clickable((By.CLASS_NAME, 'panel-heading')))
panel.click()
plan = WebDriverWait(driver, 2).until(
EC.element_to_be_clickable((By.ID, 'freePlan')))
plan.click()
username = WebDriverWait(driver, 3).until(
EC.element_to_be_clickable((By.ID, 'username')))
username.click()
username.send_keys('usernameForUSer')
我希望用戶名字段能預填。
有一個iframe
阻止訪問該元素。您需要先切換到iframe
。 嘗試以下代碼。
WebDriverWait(driver, 15).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, 'iframe.top')))
username = WebDriverWait(driver, 3).until(EC.element_to_be_clickable((By.ID, 'username')))
username.click()
username.send_keys('usernameForUSer')
瀏覽器快照:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.