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/

相关文章
|
10月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
757 8
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
471 1
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
406 1
打造高效的Web Scraper:Python与Selenium的完美结合
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
426 31
Selenium IDE:Web自动化测试的得力助手
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
1019 17
Selenium:强大的 Web 自动化测试工具
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
286 56
|
数据采集 Web App开发 JavaScript
如何使用Selenium处理JavaScript动态加载的内容?
如何使用Selenium处理JavaScript动态加载的内容?
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
1037 6

热门文章

最新文章