文档章节

0605 代替重复操作的小代码

木子木
 木子木
发布于 2014/06/05 11:41
字数 387
阅读 20
收藏 0

昨天做个小任务,其中有一步需要执行重复操作,就是select下拉框中勾选option项然后提交。然后再勾选再提交。

提交了几次,太重复太有规律了,花半小时写个代码代替这种重复操作是不是更好。

想好了,就开写,虽然还有点小问题,但基本可以代替部分重复工作了。

package MonitorTest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
public class MonitorTest {
 public static void main(String[] args) throws InterruptedException, IOException{
  //存储监控 名称的文件地址
  String fileUrl="D:\\bukejian\\tmp.txt";
  //访问地址
  String url=;
  ArrayList<String> list = new ArrayList<String>();
  String encoding="GBK";
  
  File file = new File(fileUrl);
  if(file.isFile() && file.exists()){
            InputStreamReader read = new InputStreamReader(
            new FileInputStream(file),encoding);
            BufferedReader bufferedReader = new BufferedReader(read);
            String lineTxt = null;
            while((lineTxt = bufferedReader.readLine()) != null){  
             list.add(lineTxt);
            }
            read.close();
         }else{
          System.out.println("No exist");
         }       
  
  System.setProperty("webdriver.firefox.bin", "D:/bukejian/Mozilla Firefox/firefox.exe");
  WebDriver dr = new FirefoxDriver(); 
  dr.get(url);
  WebElement submit=(new WebDriverWait(dr,10)).until(new ExpectedCondition<WebElement>(){
      @Override
      public WebElement apply(WebDriver d){
       return d.findElement(By.cssSelector("input[type=\"submit\"]"));
      }
     });
  dr.findElement(By.name("login_username")).clear();
  Thread.sleep(1000);
  dr.findElement(By.name("login_username")).sendKeys("bukejian");
  Thread.sleep(1000);
  dr.findElement(By.name("login_password")).clear();
  dr.findElement(By.name("login_password")).sendKeys("bukejian");
  submit.click();
  

  Thread.sleep(5000);
  for(String a :list){

   WebElement add=(new WebDriverWait(dr,10)).until(new ExpectedCondition<WebElement>(){
       @Override
       public WebElement apply(WebDriver d){
        return d.findElement(By.linkText("Add"));
       }
      });

   add.click();
   
   WebElement select=(new WebDriverWait(dr,10)).until(new ExpectedCondition<WebElement>(){
       @Override
       public WebElement apply(WebDriver d){
        return d.findElement(By.name("type_select"));
       }
      });
   
   new Select(dr.findElement(By.name("type_select"))).selectByVisibleText("Graph");
      new Select(dr.findElement(By.id("local_graph_id"))).selectByVisibleText(a);
      dr.findElement(By.cssSelector("input[type=\"submit\"]")).click();//提交  
  }
  dr.close();  
 }
}

代码还是有些问题,好像出自等待时间上面,一直不太懂selenium的等待时间的用法,好好看一下

© 著作权归作者所有

共有 人打赏支持
木子木

木子木

粉丝 5
博文 37
码字总数 7425
作品 0
朝阳
私信 提问
ctrl+c,ctrl+d,ctrl+z在linux中意义

linux下: ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。 ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。 ctrl-d 不是发送信号,...

飞龙栖息地
2011/08/23
0
0
“画中画”效果--谈IFRAME标签的使用

作者:秋实 文章来源:天极网页陶吧 纵观时下网站,本来网速就有些慢,可是几乎每页都要放什么Banner,栏目图片,版权等一大堆雷同的东西,当然,出于网站风格统一、广告效应的需要,本无可厚...

晨曦之光
2012/03/09
73
0
mac支持NVDANV顯卡型號持列表

NVDANV50Hal.kext 文件中的ID 找到的设备ID 显卡型号 0x019010de&0xfff0ffff 0193 GeForce 8800 GTS 0194 GeForce 8800 Ultra 0191 GeForce 8800 GTX 0x040010de&0xfff0ffff 0400 GeForce 8......

Hackintosh
2013/01/15
0
0
资源分享

分享链接 iOS开发系列--音频播放、录音、视频播放、拍照、视频录制的详细说明,包括框架等: http://www.cnblogs.com/kenshincui/p/4186022.html - autoid-0-0-0 求职大课堂之面试篇丨如何回...

卡奇匠
2016/07/26
35
0
Powershell下使用Search-mailbox删除邮件

运行环境Exchange 2013/2016 首先把搜索的结果保存到一个邮箱中作为备份,好处是通过search-mailbox误删除之后可以方便恢复,命令如下。 为了精确找到要删除的邮件,在遇到需要模糊搜索的场景...

zengchuixin2008
01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
55分钟前
9
0
ios多个target

1.建立3个target,分别为heroone,heroone test,heroone dev;分别为正式环境,test环境,dev环境 2.注意取消掉autocreate以防止名字不对,分别以Duplicate的方式建立另外两个scheme 3.创建...

HeroHY
今天
5
0
php获取客户端IP

php获取客户端IP 首先先阅读关于IP真实性安全的文章:如何正確的取得使用者 IP? 「任何從客戶端取得的資料都是不可信任的!」 HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。 ...

DrChenXX
昨天
0
0
. The valid characters are defined in RFC 7230 and RFC 问题

通过这里的回答,我们可以知道: Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom...

west_coast
昨天
1
0
刷leetcode第704题-二分查找

今天双十一买的算法书到货了,路上刷到有人说的这个题,借(chao)鉴(xi)一下别人的思路,这个是C++标准库里面的经典方法,思路精巧,优雅好品味 int search(int* nums, int numsSize, in...

锟斤拷烫烫烫
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部