Selenium web driver 使用JS修改input属性

简介:
selenium获取input时候,发现type=”hidden” 的input无法修改value,经牛人指点,可以使用js修改
  首先html源文件如下,设置为text 、hidden、submit
  View Code
  在浏览器加载之后如下:
  这时候email 不能对外显示
  使用selenium,代码如下
1 import org.openqa.selenium.Alert;
2 import org.openqa.selenium.JavascriptExecutor;
3 import org.openqa.selenium.By;
4 import org.openqa.selenium.WebDriver;
5 import org.openqa.selenium.WebElement;
6 import org.openqa.selenium.chrome.ChromeDriver;
7 //import org.openqa.selenium.ie.InternetExplorerDriver;
8 //import org.openqa.selenium.remote.DesiredCapabilities;
9
10 public class selenium {
11
12     /**
13      * @param args
14      * @throws InterruptedException
15      */
16     public static void main(String[] args) throws InterruptedException {
17         // TODO Auto-generated method stub
18
19         String URL="E:\\2.html";
20         //set  web driver property
21         System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
22         //create a WebDriver instance
23         WebDriver driver = new ChromeDriver()    ;
24         driver.manage().window().maximize();
25
26         //load the URL
27         driver.get(URL);
28         //print current title
29         System.out.println(driver.getTitle());
30         //run JS to modify hidden element
31         ((JavascriptExecutor)driver).executeScript("document.getElementById(\"em\").type ='text';");
32         Thread.sleep(3000);
33         //run JS and add a alert
34         ((JavascriptExecutor)driver).executeScript("alert(\"hello,this is a alert!\");value=\"Alert\"");
35
36         //wait for 3 seconds
37          Thread.sleep(3000);
38
39
40           //create a alert instance
41           Alert alert1=driver.switchTo().alert();
42           //print alert text
43           System.out.println(alert1.getText());
44           //click accept button
45           alert1.accept();
46
47             //create elements
48             WebElement we=driver.findElement(By.id("fn"));
49             WebElement su=driver.findElement(By.id("su"));
50             WebElement em=driver.findElement(By.id("em"));
51             // input something
52             we.sendKeys("username  test");
53             Thread.sleep(3000);
54             //print email tagname
55             System.out.print("Email  isDislayed="+em.isDisplayed()+"\n");
56             Thread.sleep(3000);
57             //click submit button
58             su.click();
59             Thread.sleep(3000);
60
61             Alert alert=driver.switchTo().alert();
62             System.out.print( alert.getText());
63             alert.accept();
64
65             Thread.sleep(3000);
66
67             //close web browser
68             driver.quit();
69
70     }
71
72 }


 可以通过js修改input的type value,执行js只需要export
  import org.openqa.selenium.JavascriptExecutor;
  运行结果如下:
  Starting ChromeDriver (v2.9.248315) on port 30175
  this is a test
  hello,this is a alert!
  Email  isDislayed=true
  I am an alert box!!

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
3月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
10天前
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
打造高效的Web Scraper:Python与Selenium的完美结合
|
2月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
155 31
Selenium IDE:Web自动化测试的得力助手
|
2月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
282 17
Selenium:强大的 Web 自动化测试工具
|
3月前
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
109 56
|
3月前
|
JavaScript
使用Node.js创建一个简单的Web服务器
使用Node.js创建一个简单的Web服务器
|
3月前
|
机器学习/深度学习 人工智能 JavaScript
JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景
本文探讨了JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景。JavaScript将注重性能优化、跨平台开发、AI融合及WebAssembly整合;TypeScript则强调与框架整合、强类型检查、前端工程化及WebAssembly的深度结合。两者结合发展,特别是在Vue 3.0中完全采用TypeScript编写,预示着未来的Web开发将更加高效、可靠。
107 4
|
3月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
70 2
|
4月前
|
XML JavaScript 前端开发
JavaScript控制台:提升Web开发技能的秘密武器
作为Web开发人员,掌握JavaScript控制台中的各种方法至关重要。本文介绍了22种实用的console方法,从基本的log()到高级的profile()和memory,每种方法都配有示例和说明,帮助开发者更高效地调试和记录信息。通过了解这些工具,您可以优化代码、提高开发速度,减少错误,使编码过程更加顺畅愉快。
62 1
JavaScript控制台:提升Web开发技能的秘密武器
|
3月前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
65 4

热门文章

最新文章