《手把手教你》系列技巧篇(四十)-java+|《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
1.简介
在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来。今天宏哥就在这里把这种测试场景讲解和分享一下。
2.用法
创建一个执行 JS 的对象,也就是 JavascriptExecutor 对象,这个对象是由 driver 进行强制类型转换而来,即JavascriptExecutor js= (JavascriptExecutor)driver;然后这个对象 js 就可以调用 executeScript 方法来执行一段 JS,这段 JS 的语句是以一段字符串的形式给传参到 executeScript 中去的。
//执行方式 JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; jsExecutor.executeScript("js代码");
3.场景三
利用JS处理元素高亮显示。其实这个前边在代码中也有实现过,只不过没有提到可能没有注意或者看到过,宏哥在这里就讲解一下。
4.实际案例(场景三)
4.1代码设计 【《手把手教你》系列技巧篇(四十)-java+|《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)】
文章图片
4.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; /** * @author 北京-宏哥 * * 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程) * * 2021年11月5日 */ public class AddColor {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")).click(); Thread.sleep(500); WebElement username = driver.findElement(By.id("TANGRAM__PSP_11__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_11__password")); js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red; '); ",password); WebElement submit = driver.findElement(By.id("TANGRAM__PSP_11__submit")); js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red; '); ",submit); }}
4.3运行代码 1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:
文章图片
2.运行代码后电脑端的浏览器的动作,如下小视频所示:
5.小结
这种办法可以帮你清楚的看到那些功能执行了,那些没有执行,不方便的前期需要编写代码添加颜色。对鼠标都点击走过的路线进行一个追踪。好了,时间不早了,今天就分享和讲解到这里,感谢大家耐心的阅读,喜欢宏哥的,别忘记在文章末尾支持一下。
推荐阅读
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 《跨界歌手》:亲情永远比爱情更有泪点
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- 人间词话的智慧
- 《一代诗人》37期,生活,江南j,拨动心潭的一泓秋水
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术
- 书评——《小行星》