python - selenium 发送密码消失
问题描述
好的,首先,这里一切正常。我现在的问题是当password
发送密钥时它会立即消失。发生这种情况是因为密码输入本身会在您再次单击输入时删除密码。我的问题是,是否有一种解决方法可以在不消失的情况下注入密码?
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from random import randint
import pickle
import datetime
import os
import time
url = 'https://sef.clareityiam.net/idp/login'
current_time = datetime.datetime.now()
current_time.strftime("%m/%d/%Y")
chromedriver = "chromedriver.exe"
driver = webdriver.Chrome(chromedriver)
driver.get(url)
pickle.dump(driver.get_cookies() , open("cookies.pkl","wb"))
user = driver.find_element_by_id("clareity")
user.send_keys("user")
password = driver.find_element_by_id("security")
password.send_keys("Password")
button = driver.find_element_by_id("loginbtn")
button.click()
解决方案
在输入数据之前单击此字段。这对我有用。此外,至少使用隐式等待。您的代码中的另一个问题可能是密码的 id 不是唯一的。有两个这样的定位器。
import pickle
import time
from selenium import webdriver
url = 'https://sef.clareityiam.net/idp/login'
driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
driver.get(url)
driver.implicitly_wait(10)
pickle.dump(driver.get_cookies(), open("cookies.pkl","wb"))
user = driver.find_element_by_id("clareity")
user.send_keys("user")
password = driver.find_element_by_xpath('//div[@data-ph="PASSWORD"]')
password.click()
password.send_keys("Password")
time.sleep(6) # Added temporary so you could see that password stays
button = driver.find_element_by_id("loginbtn")
button.click()
推荐阅读
- rsync - 由 salt 执行时 rsync 身份验证失败
- microsoft-cognitive - Azure QnAMaker - 管理内容
- mysql - 获取下一个可用日期(mysql take_dates 表中不存在的第一个日期)
- windows - 本地 git 服务器 - 文件夹路径窗口的问题
- javascript - 在日历中隐藏第二天的事件
- vba - 确定最后一个活动行
- json - 如何在 Swift 中循环 Alamorefire 数据响应?
- r - SVM 参数调整导致性能不佳 (R)
- jmeter - Jmeter- POST 请求数据具有阿拉伯字符的问题
- mongodb - $lookup 区分大小写的字段