常见控件交互方法
欢迎来到本章节的学习内容,在这一部分,我们将聚焦于常见的控件交互方法,包括如何通过 Selenium 执行常见的操作,比如点击、输入、清空输入框以及获取元素的属性信息。这些操作是进行 Web 自动化测试时不可或缺的基本技能,通过掌握这些技巧,您将能够更有效地与网页元素进行交互,从而进行更加全面的测试。
简介
常见的控件交互包含了元素的操作和元素属性的获取。元素操作,也就是对页面元素可以做哪些操作,比如点击,输入,清空等等。找到对应元素之后,就可以获取它的属性,比如获取元素的文本,获取元素的属性,获取元素的坐标等等。
我们主要分为两个部分去讲,第一个部分就是元素操作,也就是对页面元素,我可以做哪些操作,比如点击,输入,清空等等。那么第二部分呢,就是获取元素属性信息,比如获取元素的文本,获取元素的属性,获取元素的坐标等等。
元素操作
- 通过以下场景,演示元素如何操作:
- 输入"霍格沃兹测试开发"
- 清空搜索框中信息
- 演练地址: https://www.sogou.com/
Python 版本
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestInteractions:
def setup_method(self):
# 初始化 WebDriver
self.driver = webdriver.Chrome()
# 设置隐式等待时间
self.driver.implicitly_wait(10)
def teardown_method(self):
# 退出浏览器
self.driver.quit()
def test_interaction_demo(self, driver):
driver.get("https://www.sogou.com/")
# 输入内容
search_box = driver.find_element(By.ID, "query")
search_box.send_keys("霍格沃兹测试开发")
# 清空输入框
search_box.clear()
# 点击搜索按钮
search_button = driver.find_element(By.ID, "stb")
search_button.click()
Java 版本
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.time.Duration;
public class InteractionsTest {
public static WebDriver driver;
@BeforeAll
static void setUpAll() {
driver = new ChromeDriver();
//显式等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
}
@AfterAll
static void tearDownAll() {
driver.quit();
}
@Test
void interactionDemo(){
driver.get("https://www.sogou.com/");
// 输入霍格沃兹测试开发
driver.findElement(By.id("query")).sendKeys("霍格沃兹测试开发");
// 清空输入框
driver.findElement(By.id("query")).clear();
// 点击搜索
driver.findElement(By.id("stb")).click();
}
}
我们通过一个简单的例子来学习常见控件的交互方式,首先初始化 WebDriver 并设置隐式等待时间为 10 秒,接着打开搜狗搜索页面。然后,我们通过 ID 定位到搜索框,输入“霍格沃兹测试开发”,然后再清空输入框,最后点击搜索按钮。通过这个例子,我们可以清晰地看到 Selenium 对页面控件的操作过程。在这里运用到的点击、输入和清空是我们常用的三种方法,掌握这些操作对于日常的自动化测试至关重要。
获取元素属性信息
- 原因: - 定位到元素后,获取元素的文本信息,属性信息等
- 目的: - 根据这些信息进行断言或者调试
- 演练地址: https://vip.ceshiren.com/#/ui_study
那么除了我们最常用的点击、输入和清空操作外,还有另一个我们经常用到的交互方式,就是获取元素的属性信息。在定位到元素后,我们可以获取该元素的文本信息或属性值,这通常用于断言或调试,确保页面元素的状态和属性符合预期。通过实际的演练,我们将使用 Selenium 获取元素的文本和属性值,以便在自动化测试中进行验证和判断。大家可以在学社提供的演练地址进行实践,深入理解如何在实际测试中应用这些技巧。
获取元素属性信息的方法
- 获取元素文本
- 获取元素的属性(html 的属性值)
Python 版本
# Python 版本
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestInteractions:
def setup_class(self):
# 初始化WebDriver
self.driver = webdriver.Chrome()
# 设置隐式等待
self.driver.implicitly_wait(10)
def teardown_class(self):
# 退出WebDriver
self.driver.quit()
def test_interaction_demo2(self):
# 打开ui练习网址
self.driver.get("https://vip.ceshiren.com/#/ui_study")
# 获取元素文本
text = self.driver.find_element(By.ID, "frame").text
# 获取这个元素的name属性的值
text2 = self.driver.find_element(By.ID, "locate_id").get_attribute("name")
print(text)
print(text2)
Java 版本
// Java 版本
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.time.Duration;
public class InteractionsTest {
public static WebDriver driver;
@BeforeAll
static void setUpAll() {
driver = new ChromeDriver();
//显式等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
}
@AfterAll
static void tearDownAll() {
driver.quit();
}
@Test
void interactionDemo2(){
driver.get("https://vip.ceshiren.com/#/ui_study");
// 获取元素文本
String text = driver.findElement(By.id("frame")).getText();
// 获取这个元素的name属性的值
String text2 = driver.findElement(By.id("locate_id")).getAttribute("name");
System.out.println(text);
System.out.println(text2);
}
}
那我们来看看如何获取页面元素的属性信息。这一过程通常分为两个步骤:获取元素的文本内容和获取元素的属性值。通过获取元素的文本,我们可以验证页面显示是否符合预期;而获取属性值(如 name、id 等)则有助于我们进一步进行判断或断言。在这个演练中,我们通过 Selenium 获取元素的文本和属性值来进行验证。首先,我们通过 getText() 方法获取元素的文本信息,接着通过 getAttribute() 方法获取元素的 HTML 属性值。在实际应用中,这两种方法常常帮助我们在测试过程中获取元素的具体信息,并进行断言或调试,以确保测试的准确性和可靠性。大家可以通过学社为大家提供的演练地址,动手实践这两种常用的操作,进一步加深对 Selenium 操作的理解和掌握。
总结
- 点击
- 输入
- 清空
- 获取元素属性信息
在本章节中,我们深入探讨了 Selenium 中常见的控件交互方法,包括点击、输入、清空操作以及如何获取元素的属性信息。通过实际演练,我们掌握了如何定位页面元素,并对其进行常见操作,同时学习了如何获取元素的文本和属性值,这对后续的断言和调试至关重要。在自动化测试中,控件的交互操作和获取元素属性信息是两项基础且关键的技能。掌握这些操作后,大家可以更高效地进行页面验证和功能测试,提高测试脚本的稳定性和可维护性。接下来的学习中,我们将继续探索更多高级的测试技巧与方法,帮助大家在自动化测试的道路上走得更远。