python - 通过 Selenium 向 WebElement 发送文本问题
问题描述
我试图让这段代码工作,但事实并非如此。我手动输入,它可以工作,但当我自动化它时却不行。
import selenium
import time
import os
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
num = 1
while num != 1000:
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://mobile.brawlhalla.com/?kid=1415HM')
id_box = driver.find_element_by_id('email')
id_box.send_keys(str(num) +'@1.com')
login_button = driver.find_element_by_id('btn-id-6zgew9flrfn')
login_button.click()
time.sleep(10)
os.system("taskkill /im chrome.exe /f")
num = num + 1
解决方案
您可能应该WebDriverWait
在尝试将密钥发送到input
您找到的字段之前调用。这可能会有所帮助:
import selenium
import time
import os
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
num = 1
while num != 1000:
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://mobile.brawlhalla.com/?kid=1415HM')
# invoke WebDriverWait before sending keys to email field
id_box = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "email")))
id_box.send_keys(str(num) +'@1.com')
login_button = driver.find_element_by_id('btn-id-6zgew9flrfn')
login_button.click()
time.sleep(10)
os.system("taskkill /im chrome.exe /f")
num = num + 1
推荐阅读
- python - 获取与星期一不同的星期开始日的星期数 - Python
- gitlab-ci - GitLab CI:如何禁用主分支以外的其他分支的提交/自动管道?
- python - Python OpenCV waitKey() 在一定时间内显示图像的精确度/准确度如何?
- python - 贝叶斯网络算法中的错误:使用 Python 的蒙蒂霍尔问题
- javascript - 基于嵌套数组按名称过滤
- python-3.x - python3中嵌套列表的问题
- session - 客户端 ID 是否与会话统一协同工作?
- python - 可以使用函数调用使用 smtp 向多个收件人发送邮件吗?
- javascript - AngulaJS,试图学习,但发生了一些事情。初学者
- javascript - 将字符串转换为 JSX(HTML 标记)以在 React 中显示