在本教程中,我们将探索Selenium最有用的方法。Selenium提供了很多方法,使自动化过程变得简单,其中有些方法并不为人所知,但却很有用,使自动化/搜刮过程变得简单而有效。
导入模块和初始化Webdriver
Selenium webdriver是所有类和方法的父类。使用webdriver我们可以访问Selenium提供的所有方法。
from selenium import webdriver
driver = webdriver.Chrome("path of webdriver")
我们甚至可以直接使用Chrome()方法来代替 "webdriver的路径",而不需要传递webdriver路径的任何位置参数,只要我们在计算机中把浏览器的webdriver的路径 位置声明为全局环境变量。
Python Selenium中的浏览器方法
让我们从你最常使用的浏览器方法开始,你应该对这些方法有一个很好的了解。
1.抓取一个网页
为了获取一个特定的网页,我们使用get 方法,并将网页的URL作为参数传递。
driver.get("https://m.youtube.com")
2.获取一个网页的标题
title 方法返回当前页面(网页)的标题,该标题被打印在代码执行的控制台/终端。
driver.title()
3.在页面历史中来回移动
通过使用后退 和前进方法,我们可以自动完成在浏览器中返回或前进网页的任务。
driver.back()
driver.forward()
4.全屏方法
调用这个方法将使浏览器(chrome)的窗口变成全屏。
driver.fullscreen_window()
5.设置屏幕上的窗口位置
通过使用这个方法,你将能够设置当前窗口的坐标。这个方法接收x和y坐标,并按照屏幕上的坐标将当前窗口(用Python-selenium代码打开)设置在该指定位置。
driver.set_window_position(500,500)
屏幕位置的原点(0,0)是屏幕的最左下方。
6.打开一个新标签
为了在新标签页上打开一个新的网站,我们将使用execute_script() 方法。在我们下面的例子中,代码将在一个新标签页中打开Twitter,同时打开我们的第一个网站YouTube。这个方法需要JavaScript来执行。
driver.execute_script("window.open('https://twitter.com')")
7.拍摄屏幕截图
Selenium提供了一个对当前窗口进行屏幕截图的方法。它是通过使用以下方法完成的
driver.get_screenshot_as_file('ss.png')
运行此代码后,一张名为 "ss "的图片将被保存在同一目录下。
8.刷新页面
通过使用刷新方法,我们可以刷新当前框架/网页。
driver.refresh()
9.选择一个元素
在网页中选择一个元素、图片、文本字段、视频、标签等,有多种方法和技巧。
10.点击一个元素
这个方法用于点击网络元素,如按钮或链接。
在下面的代码中,我们首先使用它的ID或任何其他选择器找到链接或按钮,然后我们在这个网络元素上调用点击方法。
elements = driver.find_element_by_id("id of link or button")
elements.click()
11.发送键(文本)
我们可以通过这个方法向网页中的任何文本字段发送一些文本。我们通过使用它的ID找到Gmail的文本框,然后用send_keys方法发送我们的文本。
elements = driver.find_element_by_id("gmail")
elements.send_keys(“some text we want to send”)
12.清除文本
它用于清除任何输入字段的文本。
elements = driver.find_element_by_id("gmail")
elements.send_keys("some text we want to send")
elements.clear()
13.使用自定义的JavaScript
使用这种方法,我们可以送入自定义的JavaScript代码,并执行事件、提示等JavaScript所支持的各种操作。
driver.execute_script()
#practical code implementation
driver.execute_script("window.open('https://google.com')")
14.关闭当前标签而不关闭浏览器
通过使用关闭方法,我们可以在不关闭浏览器的情况下关闭当前标签。
driver.close()
15.关闭浏览器
我们可以用退出 方法关闭浏览器。很明显,整个浏览器窗口会关闭,关闭所有打开的标签。
driver.quit()
16.时间-睡眠(Imp.)
这实际上不是与Selenium库相关的功能或方法,但它是一个非常有用的提示,在各种情况下都能派上用场,比如等待一些任务的执行--加载网站、执行一些其他代码等。
这是时间模块的一部分,它已经与我们的python安装捆绑在一起了。
import time
#time.sleep(time to wait (in seconds))
time.sleep(5) #this will let the interpreter wait at this line for 5 seconds and then proceed with execution.
总结
本教程到此为止。有各种与Selenium相关的方法和功能,其中有些是你在使用Selenium时自己学会的,有些是我们坚持要在Selenium的官方文档 中查看的。