WebDriver核心方法和属性:掌握自动化测试的利器

本文详细介绍了SeleniumWebDriver在自动化测试中的应用,涵盖启动与关闭浏览器、导航、元素查找、操作、属性获取、处理弹窗和复杂控件,以及文件上传等核心功能。

在自动化测试中,Selenium WebDriver是一个非常重要的工具。它提供了一种方式来模拟用户与浏览器的交互,从而进行各种操作,如点击按钮、输入文本等。本文将介绍WebDriver的核心方法和属性,以及如何使用它们。

1. 启动和关闭浏览器

在使用WebDriver之前,我们需要先启动一个浏览器。这可以通过调用WebDriver的get方法来实现。例如,如果我们想要启动Chrome浏览器,我们可以这样做:

from selenium import webdriver

driver = webdriver.Chrome()

当我们完成所有的操作后,我们需要关闭浏览器。这可以通过调用WebDriver的quit方法来实现:

driver.quit()

2. 导航到网页

使用WebDriver,我们可以很容易地导航到任何一个网页。这可以通过调用WebDriver的get方法来实现。例如,如果我们想要导航到Google的主页,我们可以这样做:

driver.get("https://www.baidu.com/")

3. 查找元素

在网页上,我们经常需要查找特定的元素,如按钮、链接等。这可以通过调用WebDriver的各种查找方法来实现。例如,我们可以使用find_element_by_id方法来查找具有特定ID的元素:

selenium3之前的版本:

element = driver.find_element_by_id("my-button")

我们还可以使用find_element_by_name、find_element_by_class_name、find_element_by_tag_name、find_element_by_link_text等方法来查找元素。

selenium4版本

ID——driver.find_element(By.ID,'value')
xpath——driver.find_element(By.xpath,'value')
css selector——driver.find_element(By.CSS_SELECTOR,'value')
class name——driver.find_element(By.CLASS_NAME,'value')
name——driver.find_element(By.NAME,'value')
link text——driver.find_element(By.LINK_TEXT,'value')
partial link text——driver.find_element(By.PARTIAL_LINK_TEXT,'value')
tag name——driver.find_element(By.TAG_NAME,'value')
unicode——driver.find_element(By.UNICODE,'value')

4. 操作元素

找到元素后,我们可以对其进行各种操作,如点击、输入文本等。这可以通过调用WebElement的方法来实现。例如,我们可以使用click方法来点击一个按钮:

element.click()

我们还可以使用send_keys方法来输入文本:

element.send_keys("Hello, World!")

5. 获取元素的文本和属性

有时候,我们需要获取元素的文本或属性。这可以通过调用WebElement的方法来实现。例如,我们可以使用get_attribute方法来获取元素的属性:

attribute = element.get_attribute("href")

我们还可以使用text属性来获取元素的文本:

text = element.text

6. 处理弹出窗口和警告框

在网页上,我们经常会遇到弹出窗口和警告框。这可以通过调用WebDriver的switch_to方法来处理。例如,我们可以使用switch_to.alert方法来处理警告框:

alert = driver.switch_to.alert
alert.accept()  # 接受警告框
alert.dismiss()  # 取消警告框

我们还可以使用switch_to.window方法来处理弹出窗口:

for handle in driver.window_handles:  # 切换到新的窗口句柄(即新的窗口)
    driver.switch_to.window(handle)  # 切换到新的窗口句柄(即新的窗口)
    # 在新窗口中执行操作...

7. 处理下拉列表和复选框等控件

在网页上,我们经常会遇到下拉列表、复选框等控件。这可以通过调用WebElement的方法来处理。例如,我们可以使用select_by_visible_text方法来选择下拉列表中的选项:

element.select_by_visible_text("Option 1")  # 选择“Option 1”选项

我们还可以使用is_selected方法来检查复选框是否被选中:

if element.is_selected():  # 如果复选框被选中...else...如果复选框未被选中...

8. 处理文件上传和下载操作

在网页上,我们经常需要进行文件上传和下载操作。这可以通过调用WebElement的方法来处理。例如,我们可以使用send_keys方法来上传文件:

element.send_keys("/path/to/file")  # 上传文件“/path/to/file”到输入框中...

整体示例:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()  # 创建一个Chrome浏览器实例
        self.driver.get("https://www.baidu.com/")  # 打开百度首页
        self.driver.maximize_window()  # 窗口最大化
        sleep(1)  # 等待1秒

    def test_prop(self):
        '''
        常见属性
        :return:
        '''
        print(self.driver.name)  # 打印浏览器名称
        print(self.driver.current_url)  # 打印当前URL
        print(self.driver.title)  # 打印当前页面标题
        print(self.driver.window_handles)  # 打印当前窗口所有句柄
        print(self.driver.page_source)  # 打印当前页面源码
        self.driver.find_element(by=By.ID, value="su").click()  # 点击搜索按钮
        self.driver.quite()  # 关闭浏览器

    def test_method(self):
        '''
        常见方法
        :return:
        '''
        self.driver.find_element(by=By.ID, value="kw").send_keys("selenium")  # 在搜索框中输入文本
        self.driver.find_element(by=By.ID, value="su").click()  # 点击搜索按钮
        sleep(3)  # 等待3秒
        self.driver.back()  # 返回上一页
        sleep(3)  # 等待3秒
        self.driver.refresh()  # 刷新页面
        sleep(3)  # 等待3秒
        self.driver.forward()  # 前进到下一个页面

        self.driver.close()  # 只关闭当前tab

        self.driver.quite()  # 关闭浏览器

         总结:掌握WebDriver的核心方法和属性是进行自动化测试的基础,可以帮助我们轻松地模拟用户与浏览器的交互,执行各种操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tester Jeffky

慷慨解囊,感激不尽。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值