Python селен не может заполнить поле ввода по идентификатору или xpath - PullRequest
0 голосов
/ 04 мая 2020

У меня есть следующий код:

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")

Но последние две строки кодов не могут быть выполнены, и я понятия не имею, почему так должно быть.

1 Ответ

1 голос
/ 04 мая 2020

Я вижу, что 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")
...