Python | Automatisierung des Happy Birthday-Posts auf Facebook mithilfe von Selen
Wie wir wissen, ist selenium ein Tool zur Steuerung des Webbrowsers über ein Programm. Es kann in allen Browsern verwendet werden, das Betriebssystem und sein Programm sind in verschiedenen Programmiersprachen geschrieben, dh Java, Python (alle Versionen).
Selenium hilft uns dabei, jede Art von Aufgabe zu automatisieren, die wir häufig auf unseren Laptops erledigen. PC reicht von der Verwendung von Facebook Messenger für SMS und WhatsApp über das tägliche Twittern von Tweets auf Twitter bis hin zum Wunsch von Freunden „Alles Gute zum Geburtstag“ auf Facebook, dem Googeln von allem, was wir lernen möchten und viel mehr Aufgabe. Alle diese Aufgaben können mit selenium in nur einer kleinen Implementierung automatisiert werden.
Installation:
- Gehen Sie zur Eingabeaufforderung und geben Sie Folgendes ein:
Pip installieren Selen
- Laden Sie anschließend einen Webdriver zur Automatisierung herunter. Hier verwenden wir chromedriver von http://chromedriver.chromium.org/
Lassen Sie uns lernen, wie Sie den Prozess des Wunschens nach einem Geburtstagswunsch auf der Timeline eines Facebook-Freundes als Beitrag automatisieren können.
Der gesamte Prozess dieser Automatisierung kann wie folgt unterteilt werden:
- Anmelden bei der Facebook-Anwendung mit Anmeldeinformationen wie Benutzername und Passwort.
- Posten eines "Happy Birthday" -Feeds auf der Timeline der Freunde, deren Geburtstag heute ist.
Unten sind die Schritte:
- Erstellen Sie ein Browserobjekt und
get()
senden Sie mit der Funktion eine Anfrage an die Website, die wir verbinden / verwenden möchten. - Finden Sie die Elemente wie Benutzername und Passwort Eingabefelder, Login - Button und die Verwendung der selenium - Funktionen wie
click()
,send_keys()
etc auf Schaltflächen klicken und Eingabe von Benutzername und Passwort sind. - Danach
get()
senden Sie mit der Funktion eine Anfrage an / events / Birthdays / page. - Oben auf dieser Seite befindet sich eine Karte mit den heutigen Geburtstagen, auf der der Name des Freundes, dessen Geburtstag heute ist, sowie ein Eingabetextfeld angezeigt werden, in das Sie einen Feed auf der Zeitachse eingeben können.
- Unter Verwendung des XPATH dieser Eingabetextfelder senden wir unseren Feed, dh "Happy Birthday", unter Verwendung
send_keys()
der Selenfunktion. - Schließen Sie den Browser.
HINWEIS: Erstellen Sie eine separate test.txt
Datei und geben Sie Ihr Facebook-Passwort ein, bevor Sie das folgende Programm ausführen.
Unten ist die Implementierung:
from
selenium
import
webdriver
from
selenium.webdriver.common.by
import
By
from
selenium.webdriver.support.ui
import
WebDriverWait
from
selenium.webdriver.support
import
expected_conditions as EC
from
selenium.webdriver.chrome.options
import
Options
from
selenium.common.exceptions
import
TimeoutException
from
selenium.webdriver.common.keys
import
Keys
import
time
chrome_options
=
webdriver.ChromeOptions()
prefs
=
{
"profile.default_content_setting_values.notifications"
:
2
}
chrome_options.add_experimental_option(
"prefs"
, prefs)
browser
=
webdriver.Chrome(
"chromedriver.exe"
)
browser.get(
'https://www.facebook.com/'
)
username
=
"agrawal.abhi108@gmail.com"
with
open
(
'test.txt'
,
'r'
) as myfile:
password
=
myfile.read().replace(
'\n'
, '')
(
"Let's Begin"
)
element
=
browser.find_elements_by_xpath(
'//*[@id ="email"]'
)
element[
0
].send_keys(username)
(
"Username Entered"
)
element
=
browser.find_element_by_xpath(
'//*[@id ="pass"]'
)
element.send_keys(password)
(
"Password Entered"
)
log_in
=
browser.find_elements_by_id(
'loginbutton'
)
log_in[
0
].click()
(
"Login Successful"
)
browser.get(
'https://www.facebook.com/events/birthdays/'
)
feed
=
'Happy Birthday !'
element
=
browser.find_elements_by_xpath("
/
/
*
[@
class
=
'enter_submit\
uiTextareaNoResize uiTextareaAutogrow uiStreamInlineTextarea\
inlineReplyTextArea mentionsTextarea textInput']")
cnt
=
0
for
el
in
element:
cnt
+
=
1
element_id
=
str
(el.get_attribute(
'id'
))
XPATH
=
'//*[@id ="'
+
element_id
+
'"]'
post_field
=
browser.find_element_by_xpath(XPATH)
post_field.send_keys(feed)
post_field.send_keys(Keys.RETURN)
(
"Birthday Wish posted for friend"
+
str
(cnt))
browser.close()