我们上一篇文章介绍了Selenium的三大组件,其中介绍了WebDriver是最重要的组件。在这里,我们将看到WebDriver常用的API/方法(注:这里使用Python语言来进行演示)。
1. WebDriver创建
打开VSCode,我们首先引入webdriver:
from selenium import webdriver
引入了webdriver,我们就可以根据目标浏览器创建对应浏览器的webdriver类:
我们可以看到,webdriver支持多种浏览器,除此之外,还包括远程调用等功能,这里我们以操作目标为Edge浏览器为例子,来创建Edge的测试类:
我们可以看到,返回的是一个browser变量。我们来看browser支持哪些函数:
2. browser函数全解
browser的函数大致可以分为两大类,第一类是用于定位浏览器中的标签函数,第二类就是其他函数。
2.1 browser标签函数
新版本的Selenium使用了新的调用方式,首先我们引入By:
from selenium.webdriver.common.by import By
这样我们就可以调用了By,我们来查看By调用的参数是哪些:
2.1.1 CLASS_NAME函数
使用方法:
driver.find_element(By.CLASS_NAME,"text-color")
他会找到class=“text-color”的标签,同时提供以下点击事件:
我们这里使用点击事件——click()。
我们模拟selenium打开百度搜索页面,同时点击关于百度这个标签,代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Edge()
driver.get("https://www.baidu.com")
driver.find_element(By.CLASS_NAME,"text-color").click()
time.sleep(10)
driver.close()
点击运行,得到以下效果:
2.1.2 ID 函数
ID函数是Selenium给我们提供操作Web标签为对应ID的函数,这个函数很常用,使用方法如下:
driver.find_element(By.ID,"kw")
我们来一个编程示例,找到百度输入框,并点击搜索,输入框中输入信息为“selenium官网”。
那么我们需要先找到输入框的ID,我们打开检查:
我们可以看到,输入框对应的id名为kw。那么我们编写的程序如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Edge()
driver.get("https://www.baidu.com")
driver.find_element(By.ID,"kw").send_keys("selenium官网")
time.sleep(10)
driver.close()
这里的send_keys的作用就是将“selenium官网”填入输入框并搜索。
程序运行的效果为:
2.1.3 TAG_NAME 函数
TAG_NAME函数用来指定标签名字,不能用来指定标签内的属性。最重要的一点,TAG_NAME指定的标签是唯一的,这个是必须的。
TAG_NAME的使用方法如下:
driver.find_element(By.TAG_NAME,'area')
我们举例,使用Selenium点击如下图标,预期效果会跳转到百度热搜:
编写的代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Edge()
driver.get("https://www.baidu.com")
time.sleep(3)
driver.find_element(By.TAG_NAME,'area').click()
time.sleep(10)
driver.close()
成功的效果: