首页 > 解决方案 > 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()

标签: pythonseleniumselenium-webdriverxpathselenium-chromedriver

解决方案


在输入数据之前单击此字段。这对我有用。此外,至少使用隐式等待。您的代码中的另一个问题可能是密码的 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()

推荐阅读