Python jj=登录属性错误:类型对象';登录';没有属性';驱动程序&x27;
有人能帮我解决这个问题吗?我试图得到一个有无限卷轴的网页的页面来源。在获得目标页面之前,我需要登录到目标网站 谢谢Python jj=登录属性错误:类型对象';登录';没有属性';驱动程序&x27;,python,selenium,web-crawler,infinite-scroll,attributeerror,Python,Selenium,Web Crawler,Infinite Scroll,Attributeerror,有人能帮我解决这个问题吗?我试图得到一个有无限卷轴的网页的页面来源。在获得目标页面之前,我需要登录到目标网站 谢谢 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time class Login: def __init__(self, log_url, target_url, user, pass_word): # comments # Com
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
class Login:
def __init__(self, log_url, target_url, user, pass_word): # comments
# Comments
self.driver = webdriver.Chrome("D:/*****/******/Downloads/chromedriver.exe") # comments
self.reloads = 1000
self.pause_A = 0
self.pause_B = 15
self.username = self.driver.find_element_by_id('email')
self.password = self.driver.find_element_by_id('password')
self.sleep = time
self.lastElement = self.driver.find_element_by_class_name('photo_link')
self.log_in(log_url, target_url, user, pass_word) # Comments
def log_in(self, log_url, target_url, user, pass_word): # comments
#comments
self.driver.get(log_url) # Comments
self.username.send_keys(user)
self.password.send_keys(pass_word)
self.driver.find_element_by_class_name('unified_signup__label').submit()
self.sleep.sleep(self.pause_B)
self.driver.find_element_by_tag_name('body').send_keys(Keys.LEFT_CONTROL + 't')
self.driver.get(target_url) # comments
self.lastElement.send_keys(Keys.NULL) # comments
# comments
for _ in range(self.reloads):
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
self.sleep.sleep(self.pause_A)
if __name__ == '__main__':
jj = Login
fun = ['https://anywebsite.com/login', 'https://anywebsite.com/lok.php', 'user', 'password']
for tup in fun:
log_url = tup[0]
target_url = tup[1]
user = tup[2]
pass_word = tup[3]
jj.log_in(Login, log_url, target_url, user, pass_word)
在创建WebDriver
之前,在init()
中调用log\u In()
方法。在此方法中,您试图使用尚未创建的驱动程序执行登录。这会导致一个错误,说明您的登录
类没有驱动程序
属性
将self.log\u in(log\u url,target\u url,user,pass\u word)
移动到init()
的底部,这样您就不会尝试使用尚未初始化的属性
编辑
您也没有创建登录
类的实例jj=Login
需要括号。从这里开始,您可以将jj.log\u-in(登录、登录url、目标url、用户、传递单词)
更改为jj.log\u-in(登录url、目标url、用户、传递单词)
在使用它处理Selenium
之前,您可能想学习Python
编程的基础知识。它在哪一行失败?请发布完整的错误堆栈。只是想一想,在init
中,在驱动程序启动(?)回溯之前,您正在调用log\u in
(最后一次调用):文件“D://***/***/PycharmProjects/***/02.py”,第44行,在jj.log\u in(登录,日志url,目标url,用户,传递单词)文件“D://***/***/***/PycharmProjects/***/02.py”,第23行,在log\u in self.driver.get(日志url)中AttributeError:type对象“Login”没有属性“driver”回溯(上次调用):文件“D://***/***/PycharmProjects/***/02.py”,第44行,在jj.log\u中(登录,日志url,目标url,用户,传递单词)文件“D://***/***/PycharmProjects/***/02.py”,第23行,在log\u in self.driver.get(日志url)中AttributeError:type对象“Login”没有属性“driver”,谢谢你的回复。我确实需要在我的基础上工作;然而,你的编辑仍然给出错误:jj=Login()TypeError:uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。您已经在构造函数中调用了log\u
,因此不需要在main
中执行此操作。将jj.login(…,…,…,…)
更改为login(登录url、目标url、用户、密码)
。同时从main
中删除jj=Login()。