Selenium - Selenese 命令
Selenium - WebDriver 命令与概念
Section titled “Selenium - WebDriver 命令与概念”在 Selenium WebDriver 中,与网页的交互通过发送到浏览器驱动程序(browser driver)的命令来执行。这些命令模拟用户操作(user actions)。理解这些核心命令和概念对于有效的测试自动化(test automation)至关重要。
核心交互命令
Section titled “核心交互命令”这些是用于与 Web 元素(web elements)交互的最常用方法(methods):
findElement(By locator): 使用给定的定位策略(locator strategy)查找第一个匹配的 Web 元素。如果找不到,则抛出NoSuchElementException异常。findElements(By locator): 使用定位策略查找所有匹配的 Web 元素。如果找不到,则返回空列表。element.click(): 模拟对 Web 元素(按钮、链接、单选按钮等)进行点击。element.sendKeys(CharSequence... keysToSend): 模拟在输入字段或文本区域中输入文本。element.clear(): 清除输入字段或文本区域中的文本。element.getText(): 获取元素的可见内部文本。element.getAttribute(String attributeName): 获取指定元素属性(例如 ‘href’、‘value’、‘class’)的值。element.isSelected(): 检查复选框或单选按钮是否被选中。返回true或false。element.isEnabled(): 检查元素(如按钮或输入字段)是否启用。返回true或false。element.isDisplayed(): 检查元素在页面上是否可见。返回true或false。
浏览器导航命令
Section titled “浏览器导航命令”driver.get(String url): 导航浏览器到指定的 URL。driver.navigate().to(String url): 导航到 URL 的另一种方式。driver.navigate().back(): 模拟点击浏览器的后退按钮。driver.navigate().forward(): 模拟点击浏览器的前进按钮。driver.navigate().refresh(): 重新加载当前页面。driver.getTitle(): 获取当前页面的标题。driver.getCurrentUrl(): 获取当前页面的 URL。
断言 (验证)
Section titled “断言 (验证)”虽然 Selenium 本身执行操作,但验证结果(即断言,Assertions)通常由 TestNG 或 JUnit 等测试框架(testing framework)处理。这些框架提供方法来检查实际结果是否与预期结果匹配。
常见断言示例(使用 TestNG 语法):
import org.testng.Assert;
// Verify page titleString actualTitle = driver.getTitle();String expectedTitle = "Expected Page Title";Assert.assertEquals(actualTitle, expectedTitle, "Page title mismatch");
// Verify element textWebElement messageElement = driver.findElement(By.id("successMessage"));String actualMessage = messageElement.getText();Assert.assertTrue(actualMessage.contains("Successfully updated"), "Success message not found");
// Verify element is displayedWebElement submitButton = driver.findElement(By.id("submitBtn"));Assert.assertTrue(submitButton.isDisplayed(), "Submit button should be visible");定位元素 (Locators)
Section titled “定位元素 (Locators)”定位器(Locators)是 Selenium 用于在页面上查找 HTML 元素的策略。选择有效且稳定的定位器对于可靠的测试至关重要。现代浏览器内置了开发者工具(通常按 F12 打开),允许你检查元素并确定合适的定位器。旧教程中提到的 Firebug 和 FirePath 等工具已被弃用,并被这些内置的浏览器工具所取代。
By.id("elementId"): 根据其唯一的 ‘id’ 属性定位元素。通常是最快、最可靠的方式。By.name("elementName"): 根据其 ‘name’ 属性定位元素。By.className("elementClassName"): 根据其 ‘class’ 属性定位元素。如果多个元素共享同一个 class,请谨慎使用。By.tagName("htmlTagName"): 根据其 HTML 标签名(例如 ‘a’, ‘input’, ‘div’)定位元素。By.linkText("exactLinkText"): 根据其准确的可见文本定位锚点元素 (<a>)。By.partialLinkText("partialLinkText"): 根据其可见文本的部分匹配来定位锚点元素 (<a>)。By.cssSelector("cssSelectorSyntax"): 使用 CSS Selector 模式定位元素。功能强大且通常更受欢迎。By.xpath("xpathExpression"): 使用 XPath 表达式定位元素。功能非常强大,但如果编写不当,可能会更慢且更脆弱。
请参阅 ‘Selenium - Locators’ 章节,了解每种策略的详细示例和最佳实践。