0

我只是在学习 Python,如果有任何帮助,我将不胜感激。运行以下代码时,我收到一条消息:“TypeError:'str' object is not callable”。

我怎样才能解决这个问题?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import sys

class TwitterBot:
    def __init__(self,username,login):
        self.username = username
        self.login = login
        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)
        login.send_keys(Keys.RETURN)
        time.sleep(3)

auto = TwitterBot('email', 'password')
auto.login()
4

1 回答 1

0

这里有两个问题。第一个与您的格式有关。因为def login(self):没有缩进,所以它不是你的TwitterBot类的方法。第二个问题是您已经有一个名为 的类的成员变量login,因此您将遇到名称冲突。

你得到 aTypeError因为你试图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()
于 2020-05-07T20:20:46.560 回答