Python selenium无法通过ID或xpath填写输入框。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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")

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

答案

我看到 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")

以上是关于Python selenium无法通过ID或xpath填写输入框。的主要内容,如果未能解决你的问题,请参考以下文章

Python:无法找到具有 id 或类名的元素,webdriver 无法找到 id 或类名

Python+Selenium练习篇之2-利用ID定位元素

Selenium 使用 css、xpath、name、id (python) 找不到任何元素

python selenium,我无法从文本框中找到元素类或 id

Selenium / Python - 带有空格的类名无法本地元素

Selenium基本使用表单切换