【发布时间】:2021-02-20 11:08:18
【问题描述】:
这是我写的,它是一个登录我的 Instagram 帐户的简单程序,凭据已更改:
from selenium import webdriver
import time
import os
class InstaBot:
def __init__(self, username=None, password=None):
self.username = username
self.password = password
self.driver = webdriver.Chrome('./chromedriver.exe')
self.login()
def login(self):
self.driver.get(r'https://www.instagram.com/accounts/login/')
# login_btn = self.driver.find_element_by_xpath('//*[@id="react-root"]/section/main/div/article/div/div[1]/div/form/div[3]') # login button xpath changes after text is entered, find first
self.driver.find_element_by_name('username').send_keys(self.username)
self.driver.find_element_by_name('password').send_keys(self.password)
# login_btn.click()
if __name__ == '__main__':
ig_bot = InstaBot(username='temp', password='tempp')
我不知道它为什么会抛出错误。请帮忙。
Traceback (most recent call last):
File "instabot.py", line 30, in <module>
ig_bot = InstaBot(username='temp', password='tempp')
File "instabot.py", line 15, in __init__
self.login()
File "instabot.py", line 23, in login
self.driver.find_element_by_name('username').send_keys(self.username)
File "C:\Program Files\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 496, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\Program Files\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Program Files\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Program Files\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="username"]"}
(Session info: chrome=86.0.4240.183)
Chrome 确实打开了登录页面,但找不到该元素。
PS:你可能已经猜到我是新手
编辑:
我认为当我使用 time.sleep 几秒钟时,它可以正常工作.... 但我不认为它是修复它的最佳方法,所以请注意它并给我一些建议,或者这就是它的实际工作方式......
【问题讨论】:
标签: python selenium selenium-chromedriver