selenium - 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")
推荐阅读
- 3d - 将 3D 角度/矢量(不是位置)转换为 2 个角度(角度、间距)
- javascript - Javascript中的Lookbehind:如果之前有多个字符,则不匹配
- kubernetes-helm - 迭代 TOML 配置的范围
- visual-studio - 包装时组装版本不变
- php - Instagram 图形 API。内容发布。发布视频
- heremaps - 无法应用类 MapSettings 中的方法 setIsolatedDiskCacheRootPath (HereMaps)
- python - 如何将数字添加到 s3bucket 和 postgrsql 中的文件名
- vb.net - 如何从第 3 方 exe 获取唯一的进程 ID
- python - 如何在python中找到点在曲面上的垂直投影
- r - 如何使用 R 和 rvest 轮换代理和 IP 地址