如何解决webdriver无法登录instagram
我正在为instagram登录脚本。它已经工作了3次,但是现在它使用正确的url打开chromedriver窗口,但是没有插入用户名和密码。 (这次我没有对源代码进行任何更改。...)
当它第一次工作大约3次时,我使用了“ .... css_selektor”。现在,我尝试将插入的内容插入从chrome-developer-window复制的“ .... xpath”。
这是我的代码:
from selenium import webdriver
driver = webdriver.Chrome('my_path/chromedriver')
driver.get('https://www.instagram.com/accounts/login/')
#input_username = driver.find_element_by_css_selector("input[name='username']")
#password_input = driver.find_element_by_css_selector("input[name='password']")
input_username = driver.find_element_by_xpath("/html/body/div[1]/section/main/div/article/div/div[1]/div/form/div/div[1]/div/label/input")
password_input = driver.find_element_by_xpath("/html/body/div[1]/section/main/div/article/div/div[1]/div/form/div/div[2]/div/label/input")
input_username.send_keys("my_username")
password_input.send_keys("my_password")
login_button = browser.find_element_by_xpath("//button[@type='submit']")
login_button.click()
有人有主意吗?我怎么说,它大约工作了3次,然后没有插入我的用户名和密码。这次我什么都没改变。...
解决方法
有时由于速度问题,无法及时加载页面,并且硒无法执行指定的操作。
在这种情况下,您应该使用wait_time = webdriverWait(driver,time)
。
在这种情况下,请尝试使用wait_time.wait.until(EC.presence_of_element_located((By.XPATH,xpath)))
为此,您应该首先导入以下内容,from selenium.webdriver.support import expected_conditions as EC
。
详细了解webdriverWait()
here
还尝试了解有关硒引发的错误的更多信息,因此您可以使用expected_conditions.
这是我的代码
Drive = webdriver.Chrome()
Drive.get("https://www.instagram.com/accounts/login/")
sleep(5)
InputElements=Drive.find_elements_by_class_name("zyHYP")
UsernameInput=InputElements[0]
PasswordInput=InputElements[1]
UsernameInput.send_keys(str('UserName'))
PasswordInput.send_keys(str('Password'))
Click=Drive.find_elements_by_class_name("y3zKF")
Click[-1].click()
sleep(10)
谢谢
,我使用driver.implicitly_wait(5)
5
可能有点过分,但可以完成工作。
试试:
from selenium import webdriver
driver = webdriver.Chrome('my_path/chromedriver')
driver.get('https://www.instagram.com/accounts/login/')
driver.implicitly_wait(5)
input_username = driver.find_element_by_xpath("/html/body/div[1]/section/main/div/article/div/div[1]/div/form/div/div[1]/div/label/input")
password_input = driver.find_element_by_xpath("/html/body/div[1]/section/main/div/article/div/div[1]/div/form/div/div[2]/div/label/input")
input_username.send_keys("my_username")
password_input.send_keys("my_password")
login_button = driver.find_element_by_xpath("//button[@type='submit']")
login_button.click()
这里是一个链接,用于查看如何使用不同的方法让selenium
等待 https://selenium-python.readthedocs.io/waits.html#explicit-waits
这是我的代码,它应该可以工作
from instagramUserInfo import email,password
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
class Instagram:
def __init__(self,email,password):
self.browser = webdriver.Chrome()
self.email = email
self.password = password
def signIn(self):
self.browser.get("https://www.instagram.com/accounts/login")
time.sleep(3)
emailInput = self.browser.find_element_by_xpath(
'//*[@id="loginForm"]/div/div[1]/div/label/input')
passwordInput = self.browser.find_element_by_xpath(
'//*[@id="loginForm"]/div/div[2]/div/label/input')
loginInput = self.browser.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]/button')
emailInput.send_keys(self.email)
passwordInput.send_keys(self.password)
loginInput.send_keys(Keys.ENTER)
time.sleep(2)
instgrm = Instagram(email,password)
instgrm.signIn()
要使此代码首先生效,您需要在代码的同一目录中创建一个名为instagramUserInfo.py
的文件,然后像下面这样在其中输入用户名和密码 >
username =“用户名”
password =“密码”
之后,您可以运行代码并使用instabot自动登录instagram:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。