ie/chrome/firefox 通过selenium实现代填
最近接手一个项目,从取号机获得接口数据,通过按钮,代填到前台人员的电脑
我是通过读取txt文件,获取到的回填信息,前端使用的是electron做的一个插件,填坑如下
**坑1:打开了新的窗口,selenium就会出现定位不到当前浏览器,解决方式**
//新打开页面的定位方法
String parentHandle=driver.getWindowHandle();
System.out.println(“parent的句柄:”+parentHandle);
//获取所有的Handle
Set windowHandles = driver.getWindowHandles();
System.out.println(“所有句柄:”+windowHandles);
//判断是否打开了新窗口
for(String handle:windowHandles) {
System.out.println(“页面的句柄:”+handle);
if (!parentHandle.equals(handle)) {
driver.switchTo().window(handle);
logger.info(“新窗口定位:”+driver.switchTo().window(handle));
}
}
**坑2:selenium抓取页面上动态的name值,使用xpath+contains**
userNameList1 = driver.findElements(By.xpath("//input[contains(@name,‘xxx’)]"));
**坑3,抓取iframe下的name值,需要一层一层抓取,举例抓取src里的属性**
driver.switchTo().frame(driver.findElement(By.xpath(("//iframe[contains(@src,’’)]"))));
driver.switchTo().frame(driver.findElement(By.xpath(("//iframe[contains(@src,‘xxxx’)]"))));