这篇来玩一个好玩的测试,就是利用javascript让测试过程中的元素高亮显示,例如在登录框,让输入框背景颜色设置成黄色,边框设置2个像素,颜色是红色。这个问题,我在一家公司的笔试题上看见过,所以这里就实现了测试下。相关脚本如下。
package lessons;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class ElementOpration {
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.baidu.com/");
Thread.sleep(2000);
// 点击登录
driver.findElement(By.xpath("//*[@id='u1']/a[7]")).click();
Thread.sleep(500);
WebElement username = driver.findElement(By.id("TANGRAM__PSP_8__userName"));
// 创建一个JavascriptExecutor对象
JavascriptExecutor js= (JavascriptExecutor)driver;
username.sendKeys("abcdefg");
// 设置颜色
js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red;');",username);
WebElement password = driver.findElement(By.id("TANGRAM__PSP_8__password"));
js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red;');",password);
}
}
运行结果:输入过程不会变颜色,输入结束,里面变成我们想要的红色边框和黄色背景。这个效果,好像在公司里面给别人颜色demo,看起来很酷,其他的好像没有多大用处。