首页 > 解决方案 > Python selenium 无法通过 ID 或 xpath 填充输入框

问题描述

我有以下代码:

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.common.keys import Keys

if __name__ == '__main__':
    path_to_chromedriver = r'C:\chromedriver'  # change path as needed
    browser = webdriver.Chrome(executable_path=path_to_chromedriver)
    wait = WebDriverWait(browser, 10)
    browser.get("https://pjm.com/")
    wait.until(EC.presence_of_element_located((By.XPATH, "/html/body/form/div[3]/div/div[1]/div/div[1]/span[2]"))).click()
    wait.until(EC.presence_of_element_located((By.ID, "IDToken1"))).send_keys("user")
    wait.until(EC.presence_of_element_located((By.ID, "IDToken2"))).send_keys("pwd")

但是最后两行代码无法执行,我不知道为什么会这样。

标签: seleniumpython-3.8

解决方案


我看到这click()将打开一个新选项卡,在这种情况下,您必须切换到该选项卡,然后才能继续登录详细信息:

browser.switch_to.window(browser.window_handles[1])
wait.until(EC.presence_of_element_located((By.ID, "IDToken1"))).send_keys("user")
wait.until(EC.presence_of_element_located((By.ID, "IDToken2"))).send_keys("pwd")

推荐阅读