Здесь есть две проблемы. Первое связано с вашим форматированием. Поскольку def login(self):
без отступа, это не метод вашего класса TwitterBot
. Вторая проблема заключается в том, что у вас уже есть переменная-член класса с именем login
, поэтому у вас будет конфликт имен.
Вы получаете TypeError
, потому что пытаетесь вызвать строка login
как метод.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import sys
class TwitterBot:
def __init__(self,username,login_credential):
self.username = username
self.login_credential = login_credential
self.bot = webdriver.Safari()
def login(self):
bot = self.bot
bot.get('https://twitter.com/')
time.sleep(3)
email = bot.find_element_by_class_name('email-input')
login = bot.find_element_by_name('session[login]')
email.clear()
login.clear()
email.send_keys(self.username)
login.send_keys(self.login_credential)
login.send_keys(Keys.RETURN)
time.sleep(3)
auto = TwitterBot('email', 'password')
auto.login()