如何使用Selenium WebDriver进行Web自动化?
我们可以使用Selenium webdriver进行web自动化。为此,我们需要遵循以下步骤:
步骤1 - 创建Webdriver。例如:
WebDriver driver = new ChromeDriver();
以上代码用于创建一个webdriver实例并在Chrome浏览器中启动脚本执行。
步骤2 - 启动我们要执行UI测试的URL。例如:
driver.get("https://tutorialspoint.com/index.htm");
以上代码将启动作为参数传递给get方法的URL。
步骤3 - 使用任何定位器(如id、class、name、tag name、link text、partial link text、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://tutorialspoint.com/testng/index.htm
步骤7 - 执行测试并记录使用测试框架创建的结果。
步骤8 - 通过退出webdriver会话来结束测试。例如:
driver.quit();
示例
代码实现
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 instance WebDriver driver = new ChromeDriver(); // implicit wait driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //url launch driver.get("https://tutorialspoint.com/index.htm"); //element identify WebElement elm = driver.findElement(By.tagName("input")); //perform action - input text elm.sendKeys("Selenium"); String s = elm.getAttribute("value"); //validate result with Assertion Assert.assertEquals(s, "Selenium"); //quit browser driver.quit(); } }