如何使用 Selenium WebDriver 进行 Web 自动化?
我们可以使用 Selenium WebDriver 进行 Web 自动化。为此,我们需要遵循以下步骤 −
步骤 1 − 需要创建 Webdriver。例如:
WebDriver driver = new ChromeDriver();
上面的代码用于创建 Webdriver 实例并在 Chrome 浏览器中启动脚本执行。
步骤 2 − 启动我们要执行 UI 测试的 URL。例如:
driver.get("https://www.tutorialspoint.com/index.htm");
上述代码将启动作为参数传递给 get 方法的 URL。
步骤 3 − 使用任何定位器(例如 id、class、name、标签名称、链接文本、部分链接文本、CSS 或 XPath)识别 Web 元素。 findElement 方法用于使用这些定位器识别元素。例如:
WebElement e = driver.findElement(By.id("txt"));
上述代码用于使用定位器 id 识别元素。
步骤 4 −找到元素后,对其执行操作,例如输入文本、点击等。例如:
e.sendKeys("Rest Assured");
上述代码用于向步骤3中确定的元素输入数据。
步骤5 − 验证执行步骤4中的操作对网页的影响。例如:
String st = e.getAttribute("value");
Assert.assertEquals(st, "Rest Assured");
上述代码用于比较并验证实际值是否等于预期值 - Selenium。
步骤6 − 向测试中添加TestNG/JUnit等测试框架。有关如何设置 TestNG 的详细信息,请参阅以下链接 −
https://www.tutorialspoint.com/testng/index.htm
步骤 7 − 执行测试并使用测试框架记录结果。
步骤 8 − 退出 webdriver 会话以完成测试。例如:
driver.quit();
示例
Code Implementation
import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.Test; public class NewTest { @Test public void f() { System.setProperty("webdriver.chrome.driver", "chromedriver"); //webdriver 实例 WebDriver driver = new ChromeDriver(); // 隐式等待 driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); // url 启动 driver.get("https://www.tutorialspoint.com/index.htm"); // 元素标识 WebElement elm = driver.findElement(By.tagName("input")); // 执行操作 - 输入文本 elm.sendKeys("Selenium"); String s = elm.getAttribute(&"value&";); //使用断言验证结果 Assert.assertEquals(s, &"Selenium&";); //退出浏览器 driver.quit(); } }