Python - 如何使用用户输入进行登录信息提示
Python - How to use user input for login information prompt
我是 Python 的新手,我尝试制作一个脚本,让您自动登录 Instagram。但是我对只将它放在代码中的解决方案不满意,我想在 运行 脚本时询问凭据,然后在 Instagram 登录页面上使用它。这是我到目前为止得到的代码:
from time import sleep
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from random import randint
username = input("Enter your username: ")
password = input("Enter your password: ")
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.instagram.com/')
sleep (2)
driver.execute_script("""
var l = document.getElementsByClassName("pbNvD FrS-d sjcY5 gD9tr")[0];
l.parentNode.removeChild(l);
""")
driver.execute_script("""
var l = document.getElementsByClassName("RnEpo Yx5HN _4Yzd2")[0];
l.parentNode.removeChild(l);
""")
sleep (1)
username = driver.find_element_by_name('username')
username.send_keys('username')
password = driver.find_element_by_name('password')
password.send_keys('password')
button_login = driver.find_element_by_css_selector('#loginForm > div > div:nth-child(3) > button')
button_login.click()
sleep(randint(3,5))
notnow = driver.find_element_by_css_selector('#react-root > section > main > div > div > div > div > button')
notnow.click()
sleep(randint(3,5))
notificationnotnow = driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]')
notificationnotnow.click()
提前致谢!
为什么要传递字符串(“用户名”和“密码”)名称而不是(用户名和密码)
from time import sleep
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from random import randint
username = input("Enter your username: ")
password = input("Enter your password: ")
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.instagram.com/')
sleep (5)
username_input = driver.find_element_by_name('username')
username_input.send_keys(username)
password_input = driver.find_element_by_name('password')
password_input.send_keys(password)
button_login = driver.find_element_by_css_selector('#loginForm > div > div:nth-child(3) > button')
button_login.click()
sleep(randint(3,5))
notnow = driver.find_element_by_css_selector('#react-root > section > main > div > div > div > div > button')
notnow.click()
sleep(randint(3,5))
notificationnotnow = driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]')
notificationnotnow.click()
问题就在这里
sleep (1)
username = driver.find_element_by_name('username')
username.send_keys('username')
password = driver.find_element_by_name('password')
password.send_keys('password')
您正在传递单词 'username' 和 'password',而不是传递变量 username
、password
。当您将它们放在引号内时,它们会变成字符串。
您应该尝试以下操作:
sleep (1)
username = driver.find_element_by_name('username')
username.send_keys(username)
password = driver.find_element_by_name('password')
password.send_keys(password)
我是 Python 的新手,我尝试制作一个脚本,让您自动登录 Instagram。但是我对只将它放在代码中的解决方案不满意,我想在 运行 脚本时询问凭据,然后在 Instagram 登录页面上使用它。这是我到目前为止得到的代码:
from time import sleep
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from random import randint
username = input("Enter your username: ")
password = input("Enter your password: ")
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.instagram.com/')
sleep (2)
driver.execute_script("""
var l = document.getElementsByClassName("pbNvD FrS-d sjcY5 gD9tr")[0];
l.parentNode.removeChild(l);
""")
driver.execute_script("""
var l = document.getElementsByClassName("RnEpo Yx5HN _4Yzd2")[0];
l.parentNode.removeChild(l);
""")
sleep (1)
username = driver.find_element_by_name('username')
username.send_keys('username')
password = driver.find_element_by_name('password')
password.send_keys('password')
button_login = driver.find_element_by_css_selector('#loginForm > div > div:nth-child(3) > button')
button_login.click()
sleep(randint(3,5))
notnow = driver.find_element_by_css_selector('#react-root > section > main > div > div > div > div > button')
notnow.click()
sleep(randint(3,5))
notificationnotnow = driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]')
notificationnotnow.click()
提前致谢!
为什么要传递字符串(“用户名”和“密码”)名称而不是(用户名和密码)
from time import sleep
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from random import randint
username = input("Enter your username: ")
password = input("Enter your password: ")
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.instagram.com/')
sleep (5)
username_input = driver.find_element_by_name('username')
username_input.send_keys(username)
password_input = driver.find_element_by_name('password')
password_input.send_keys(password)
button_login = driver.find_element_by_css_selector('#loginForm > div > div:nth-child(3) > button')
button_login.click()
sleep(randint(3,5))
notnow = driver.find_element_by_css_selector('#react-root > section > main > div > div > div > div > button')
notnow.click()
sleep(randint(3,5))
notificationnotnow = driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[3]/button[2]')
notificationnotnow.click()
问题就在这里
sleep (1)
username = driver.find_element_by_name('username')
username.send_keys('username')
password = driver.find_element_by_name('password')
password.send_keys('password')
您正在传递单词 'username' 和 'password',而不是传递变量 username
、password
。当您将它们放在引号内时,它们会变成字符串。
您应该尝试以下操作:
sleep (1)
username = driver.find_element_by_name('username')
username.send_keys(username)
password = driver.find_element_by_name('password')
password.send_keys(password)