Я автоматизирую задачу, используя selenuim webdriver. Как исправить: get () пропустил 1 обязательный позиционный аргумент: 'url' - PullRequest
0 голосов
/ 03 ноября 2019

Я создаю Twitter-бота, которому автоматически нравятся все сообщения в хэштеге, и при получении URL-адреса с помощью get () я получаю эту ошибку:

get () отсутствует 1 требуемый позиционныйаргумент: 'url'.

Я также пытался get(url = 'https//twitter.com/'), но выдает ошибку, что:

TypeError: get () отсутствует 1 обязательный позиционный аргумент: 'self '

Как это исправить?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
class TwitterBot() :
    username , password = '' , ''
    bot = webdriver.Firefox
    def __init (self , username , password) :
        self.username = username
        self.password = password
        self.bot = webdriver.Firefox
        username = 'BitBot97561591'
        password = 'iambot'
    def login ( self ) :
        bot = self.bot
        bot.get('https://twitter.com/')
        time.sleep(3)
        user = bot.find_element_by_class_name('email-input')
        password = bot.find_element_by_name('session[password]')
        user.clear()
        password.clear()
        user.send_keys(self.username)
        password.send_keys(self.password)
        password.send_keys(Keys.RETURN)
        time.sleep(3)
    def liker ( self , hashtag ) :
        bot = self.bot
        bot.get('https://twitter.com/search?q='+hashtag+'t&src=typd')
        time.sleep(3)
        for i in range (1 , 5) :
            bot.execute_script('window.scrollTo(0,document.body.scrollHeight)')
            time.sleep(2)
            tweets = bot.find_elements_by_class_name('tweet')
            links = [elem.get_attribute('data-permalink-path') for elem in tweet]
            for link in links :
                bot.get('https://twitter.com/'+link)
                try :
                    bot.find_element_by_class_name('HeartAnimation').click()
                    time.sleep(5)
                except Exception as ex :
                    time.sleep(10)
tweet = TwitterBot()
tweet.login()
tweet.liker('webdevelopment')

Я ожидаю открыть браузер Firefox, ввести адрес электронной почты и пароль и, как и все сообщения в хэштеге.

1 Ответ

0 голосов
/ 03 ноября 2019

Вы действительно не запускаете драйвер FireFox, вы назначаете webdriver тип на bot

bot = webdriver.Firefox(executable_path='path to geckodriver')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...