自动化测试工具-Selenium:WebDriver的API/方法使用全解

我们上一篇文章介绍了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()

成功的效果:

相关推荐

  1. App测试自动化工具UIAutomator2使用

    2023-12-22 00:18:04       29 阅读
  2. Web测试自动化工具Selenium使用

    2023-12-22 00:18:04       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-22 00:18:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-22 00:18:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-22 00:18:04       82 阅读
  4. Python语言-面向对象

    2023-12-22 00:18:04       91 阅读

热门阅读

  1. JVM中的虚拟机栈的动态链接部分存放到底是什么

    2023-12-22 00:18:04       59 阅读
  2. MySQL的安装(详细步骤 亲测可用)

    2023-12-22 00:18:04       72 阅读
  3. 微服务常见的配置中心简介

    2023-12-22 00:18:04       61 阅读
  4. C++复合数据类型:结构体|枚举

    2023-12-22 00:18:04       53 阅读
  5. Ubuntu20.04安装CUDA和Nvidia 4090显卡驱动

    2023-12-22 00:18:04       72 阅读
  6. ubuntu 更换pip源

    2023-12-22 00:18:04       71 阅读
  7. JUC、MySQL

    2023-12-22 00:18:04       37 阅读
  8. log4js-node在nodejs项目中的使用示例

    2023-12-22 00:18:04       53 阅读
  9. node设置镜像源

    2023-12-22 00:18:04       61 阅读
  10. centos磁盘扩容

    2023-12-22 00:18:04       62 阅读
  11. Codeforces Round 916 (Div. 3)(A~F)

    2023-12-22 00:18:04       65 阅读