📌  相关文章
📜  使用Selenium 的浏览器自动化

📅  最后修改于: 2021-10-22 02:41:09             🧑  作者: Mango

Selenium是一个强大的工具,用于通过程序控制 Web 浏览器。它适用于所有浏览器,适用于所有主要操作系统,其脚本是用各种语言编写的,例如Python、 Java、C# 等,我们将使用Python。

掌握Selenium将帮助你自动化你的日常任务,比如控制你的推文、Whatsapp 短信,甚至只是谷歌搜索,而无需实际打开浏览器,只需 15-30 行Python代码。selenium的自动化限制是无止境的。

安装

1.1 Python的Selenium绑定
Selenium Python绑定提供了一个方便的 API 来访问Selenium Web Driver,如 Firefox、Chrome 等。

Pip install Selenium 

1.2 网络驱动
Selenium需要一个 Web 驱动程序来与所选浏览器进行交互。 Web 驱动程序是一个与 Web 浏览器交互的包。它通过一种通用的有线协议与网络浏览器或远程网络服务器交互。您可以检查并安装您选择的浏览器的网络驱动程序。

Chrome:    https://sites.google.com/a/chromium.org/chromedriver/downloads
Firefox: https://github.com/mozilla/geckodriver/releases
Safari:    https://webkit.org/blog/6900/webdriver-support-in-safari-10/

入门

from selenium import webdriver     
  
# For using sleep function because selenium 
# works only when the all the elements of the 
# page is loaded.
import time 
   
from selenium.webdriver.common.keys import Keys 
  
# Creating an instance webdriver
browser = webdriver.Firefox() 
browser.get('https://www.twitter.com')
  
# Let's the user see and also load the element 
time.sleep(2)
   
login = browser.find_elements_by_xpath('//*[@id="doc"]/div[1]/div/div[1]/div[2]/a[3]')
  
# using the click function which is similar to a click in the mouse.
login[0].click()
  
print("Login in Twitter")
  
user = browser.find_elements_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/div[1]/input')
  
# Enter User Name
user[0].send_keys('USER-NAME')
  
user = browser.find_element_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/div[2]/input')
  
# Reads password from a text file because
# saving the password in a script is just silly.
with open('test.txt', 'r') as myfile:  
    Password = myfile.read().replace('\n', '')
user.send_keys(Password)
  
LOG = browser.find_elements_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/input[1]')
LOG[0].click()
print("Login Successful")
time.sleep(5)
  
elem = browser.find_element_by_name("q")
elem.click()
elem.clear()
  
elem.send_keys("Geeks for geeks ")
  
# using keys to send special KEYS 
elem.send_keys(Keys.RETURN) 
  
print("Search Successful")
  
# closing the browser
browser.close() 

剖析代码

上面的脚本是用于登录twitter并搜索geeks for geeks handle。
那么让我们看看它是如何工作的:
1. 打开浏览器
2. 创建浏览器实例并使用 .get函数连接网站。
3. 查找元素 这可以是找到输入框或按钮并使用selenium函数(如 click()、send_keys() 等)与元素交互的任何内容。
4. 关闭浏览器

到目前为止,您一定已经意识到这个自动化脚本以查找元素并与之交互的迭代方式工作。有多种方法可以在网页中查找元素,您只需右键单击并检查元素并按名称、css 选择器或 xpath 复制元素。

截图_20170419_203546

嗯,基本上就是这样,您可以为每个网站创建一个自定义的自动化脚本,或者为所有社交媒体创建一个通用脚本,它可以自动执行所有操作。
自动化没有限制,以上只是让你们开始的一个例子。编码快乐!

相关帖子:
使用Python 的Whatsapp!