自动草稿

在学习Python时,Python脚本是最有趣、最吸引人的事情之一。自动化和控制浏览器就是其中之一。

在这篇特别的文章中,我们将看到如何使用Python和Selenium功能登录Facebook帐户。

Selenium自动化并控制浏览器及其活动。在selenium的帮助下,我们可以用自己的方式编写代码来控制浏览器任务。它主要用于自动化web应用程序以进行测试。

我们在这里使用selenium打开我们需求的站点(在本例中是Facebook),在那里我们通过电子邮件框、密码框和登录按钮检查元素以查找它们的id。

  • 使用selenium模块提供的find_element_by_id()函数,我们可以找到所需的元素(用户名框,密码框,登录按钮)
  • 使用selenium模块提供的send_keys()函数,我们将数据发送到框中。

1.安装第三方模块

Selenium 
getpassAdditional Requirement : geckodriver for firefox and                          chromedriver for chrome

2.导入必要的模块

  • Selenium:自动化浏览器
  • Time:如果输入速度过快,浏览器会尝试检测自动化内容,因此暂停脚本运行几秒钟

3.以用户名和密码作为用户输入

使用input()函数并将提示消息作为参数传递。

4.打开浏览器和所需的网站

webdriver.Chrome()将打开Chrome的新窗口。我们将其对象保存在名为driver的变量中。

现在使用get函数,我们将打开Facebook网站。

5.查找用于发送数据和发送输入的元素

在要查找其id的浏览器元素上使用inspect element工具。在这种情况下,我们将检查用户名框、密码框、登录按钮以查找其id。然后将此id与selenium函数find_element_by_id()结合使用,在网页上查找该id并将其保存在变量中以供以后使用。然后通过使用send_keys()我们将在前面找到的元素之间发送数据。

6.关闭浏览器

完成上述所有步骤后,我们必须退出会话,这将通过使用driver.quit()实现。

注意:driver是您为webdriver.Chrome()选择的变量的名称。

完整的代码

from selenium import webdriver 
from time import sleep 
  usr=input('Enter Email Id:')  
pwd=input('Enter Password:')  
  driver = webdriver.Chrome() driver.get('https://www.facebook.com/') 
print ("Opened facebook") 
sleep(1) 
  username_box = driver.find_element_by_id('email') 
username_box.send_keys(usr) print ("Email Id entered") 
sleep(1) 
  password_box = driver.find_element_by_id('pass') 
password_box.send_keys(pwd) print ("Password entered") 
  login_box = driver.find_element_by_id('loginbutton') 
login_box.click()   print ("Done") 
input('Press anything to quit') 
driver.quit() print("Finished") 

看看这段简洁的代码如何为您自动化。

为了安全起见,我们也可以输入密码而不在屏幕上显示密码。为此,我们必须再包含一个名为getpass的模块。现在只需更改密码输入语句,我们就可以输入密码而无需在屏幕上显示密码。

from getpass import getpass 
pwd = getpass('Enter Password:')  

Getpass提示用户输入密码,但不回显。基本上它让你输入密码而不显示在屏幕上。

类似地,你还可以自动完成其他许多事情,比如twitter登录、tweeting、facebook注销等等。