高亮显示页面元素主要用到Selenium中使用js的知识点,最常用的是检查元素定位是否正确。此外,实现js的调用大大增强了Selenium的功能。以下是调试通过的案例:
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class js { public static void main(String[] args){ WebDriver driver = new ChromeDriver(); driver.get("http://www.baidu.com"); String js="var q=document.getElementById(\"kw\");q.style.border=\"1px solid red\";";//对象显示红色边框 ((JavascriptExecutor)driver).executeScript(js); } }
运行结果是百度搜索栏显示红色边框,如下图示:
以下是同事封装的一份方法,可以直接调用。分享一下:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.JavascriptExecutor; /** * 高亮显示页面元素 * @param diver 浏览器驱动 * @param element 高亮显示对象元素 */ public static void highlight(WebDriver diver, WebElement element) { JavascriptExecutor js = (JavascriptExecutor) diver; js.executeScript("element = arguments[0];" + "original_style = element.getAttribute('style');" + "element.setAttribute('style', original_style + \";" + "background: yellow; border: 2px solid red;\");" + "setTimeout(function(){element.setAttribute('style', original_style);}, 1000);", element); }