如何使用Selenium获取div class元素文本并填入input class元素
Selenium实现div文本自动填入input的操作方法
现有代码问题修正
你当前的代码存在变量名覆盖问题:两次定位得到的div元素和input元素都赋值给了同一个verification_code变量,会导致先定位到的div元素被后续input元素覆盖,首先需要拆分两个元素的存储变量。
具体操作步骤
- 分别定义变量存储div元素和input元素
- 调用div元素的
.text属性获取其展示的文本内容,如果div为隐藏元素可替换为.get_attribute('textContent')读取文本 - 先调用input元素的
.clear()方法清空原有内容,再调用.send_keys()方法传入读取到的验证码文本
修正后的完整代码示例
import os import time from selenium import webdriver from pyvirtualdisplay import Display from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC lol = input("Click to print div class text on console...") driver = webdriver.Firefox() driver.get("<替换为实际的目标页面链接>") # 定位存储验证码的div元素 code_div = WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.XPATH, "/html/body/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr/td/table/tbody/tr[2]/td[2]/table/tbody/tr[2]/td[2]"))) # 定位验证码输入框元素 code_input = WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.XPATH, "/html/body/div[1]/section/main/div/div/div[1]/div[2]/form/div/div[1]/input"))) # 读取div文本 verification_code = code_div.text # 清空输入框并填入文本 code_input.clear() code_input.send_keys(verification_code)
补充注意点
如果操作时出现文本读取为空、填入失败的情况,可以将presence_of_element_located替换为visibility_of_element_located,确保元素渲染可见后再执行操作,也可以在定位元素后增加短时间延迟避免动态内容未加载完成。
内容的提问来源于stack exchange,提问作者dasdasddas dsadasd
相关产品推荐
相关产品推荐

