selenium对网页进行自动化测试时实现验证码的自动获取与填充
此处示例为第十四届蓝桥杯软件测试比赛模拟赛自动化测试题目java
第十四届蓝桥杯软件测试比赛(模拟赛/省赛/国赛)参考答案:
https://lanqiao-courses.feishu.cn/docx/DClJdDImXoNMyfxleDMczKdbnYf
1.被测网页示例
2.自动获取验证码内容
题目要求为:输入验证码(已在前端页面源码中标签中隐藏,通过页面中元素的文本获得,并填充到验证码输入框
右击验证码所在位置进行检查,找到验证码文本所在的span标签以及验证码填充框所在的位置
3.selenium代码
//获取验证码
WebElement verifiCode = driver.findElement(By.xpath("//*[@id=\"app\"]/div/div/div/form/div[3]/div/div/div[2]/span"));
String code_text = verifiCode.getAttribute("textContent");
Thread.sleep(2000);
//输入验证码
WebElement codeInput = driver.findElement(By.xpath("/html/body/div[1]/div/div/div/form/div[3]/div/div[1]/div[1]/input"));
codeInput.sendKeys(code_text);
4.登录后使用断言验证用户名称—assertEquals()
//登录后,获取登录的账户名称
WebElement accountText = driver.findElement(By.xpath("//*[@id=\"app\"]/div/div[2]/div/div[1]/div[3]/div[3]/div"));
String result_text = accountText.getText();
Thread.sleep(2000);
// assertEquals(result_text,"超管");
//两种断言形式,使用下述这种Assert时,需要导入import org.junit.Assert;
Assert.assertEquals(result_text, "超管");