您的位置:首页 > 其它

Selenium+TestNG Web自动化测试环境搭建5_高亮对象

2016-09-09 13:28 225 查看

为了在case执行的时候,能更直观地显示出当前操作的元素,我们利用javascript来高亮显示元素。

继续使用前一篇文章的例子。

原理就是利用javascript给当前操作的元素加上背景色或者边框等等。

说明:当前元素往往伴随着某一个具体的操作,因此可以将highlight封装成一个公共函数。然后在执行某个具体操作时调用它就可以了。

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('style', arguments[1]);", webElement, "background: yellow; color: red; border: 2px solid red;");

这段代码的意思就是:给webElement加上style:背景为黄色,内容和边框位红色。

(如果觉得这样的style有点复杂,可以进行调整:比如 去掉background等)

附上完整代码:

package selTest.web.testBD;

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;
import org.testng.Assert;
import org.testng.annotations.Test;

public class A123 {

public WebDriver driver = null;
public WebElement webelement = null;

//初始化driver
public void initDriver() {
System.out.println();
driver = new ChromeDriver();
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
}

//封装highlight
public WebElement highLight(WebElement webElement) {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('style', arguments[1]);", webElement, "background: yellow;color: red; border: 2px solid red;");
return webElement;
}

@Test(priority = 0)
public void openBD(){
initDriver();
driver.get("http://www.baidu.com");
driver.manage().window().maximize();
}

@Test(priority = 10)
public void searchCSDN() throws InterruptedException{
webelement = driver.findElement(By.xpath("//input[@id = \"kw\"]"));
highLight(webelement);
webelement.sendKeys("csdn");

webelement = driver.findElement(By.xpath("//*[@id=\"su\"]"));
highLight(webelement);
webelement.click();

Thread.sleep(3001);
}

@Test(priority = 20)
public void checkSearchResult(){
String pagesorce = driver.getPageSource();
Assert.assertTrue(pagesorce.contains("全球最大中文IT社区,为IT专业技术人员提供最全面的"));
}

}


效果截图:


</pre><pre name="code" class="java">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: