-
Notifications
You must be signed in to change notification settings - Fork 1
/
twitter_bot.py
66 lines (47 loc) · 2.04 KB
/
twitter_bot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import time
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
# path to chrome driver, download it from https://sites.google.com/a/chromium.org/chromedriver/downloads
chrome_driver = "/chromedriver"
class TwitterBot:
def __init__(self,username,password,mobile):
self.browser=webdriver.Chrome(chrome_driver)
self.username=username
self.password=password
self.mobile=mobile
# signin to the account
def signIn(self):
self.browser.get("https://www.twitter.com/login")
time.sleep(5)
usernameInput = self.browser.find_element(By.NAME,'text')
usernameInput.send_keys(self.username)
time.sleep(3)
self.browser.maximize_window()
nextButton1 = self.browser.find_element(By.XPATH,'//span[.="Next"]')
nextButton1.click()
time.sleep(3)
try:
middleInput = self.browser.find_element(By.NAME,'text')
middleInput.send_keys(self.mobile)
time.sleep(3)
nextButton2 = self.browser.find_element(By.XPATH,'//span[.="Next"]')
nextButton2.click()
time.sleep(3)
except NoSuchElementException as nsee:
print ("exception : ",nsee)
passwordInput = self.browser.find_element(By.XPATH,'//input[@name="password"]')
passwordInput.send_keys(self.password)
# passwordInput.send_keys(Keys.ENTER)
time.sleep(5)
loginButton = self.browser.find_element(By.XPATH,'//span[.="Log in"]')
loginButton.click()
def TweetSomething(self, message):
time.sleep(5)
tweet_button = self.browser.find_element(By.XPATH,'//a[@aria-label="Tweet"]')
tweet_button.click()
tweet_text = self.browser.find_element(By.XPATH,'//div[@aria-label="Tweet text"]')
tweet_text.send_keys(message)
tweet = self.browser.find_element(By.XPATH,'//span[.="Tweet"]')
tweet.click()