首先下载google浏览器驱动:

下载地址:https://gitee.com/taisan/reptile/blob/master/src/main/resources/chromedriver/chromedriver.exe

接下pom文件中引入selenium依赖

     <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-server</artifactId><version>3.0.1</version></dependency>

java代码如下

import org.apache.commons.lang3.StringUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;import java.util.List;
import java.util.Objects;
import java.util.ResourceBundle;/*** 禅达快速创建任务* Created by tarzan liu on 2018/2/2.*/
public class ZenTaoCreateTask {private static String webDriver = "webdriver.chrome.driver";private static String webDriverPath ="F:\\idea_workspace\\JavaDemo\\chromedriver_win32\\chromedriver.exe";private static String targetPath = "http://172.16.10.26:12345/zentao/user-login-L3plbnRhby9teS5odG1s.html";private static WebDriver driver = null;private static String username = null;private static String password = null;//项目名称(必须和禅道项目名称一致)private static String projectName = "智能矿山项目";//任务名称private static String taskName = "生产管控-开掘进度和回采进度接口测试和修改";//内容描述private static String content = "";//任务类型 (必须和禅道任务类型一致)private static String taskType = "开发";//任务指派人(L首个汉字的拼音首字母大写)private static String  people = "L:刘德华";//预估时长private static String  estimate = "8";static {ResourceBundle rb = ResourceBundle.getBundle("zenTao");username = rb.getString("zenTao.username");password = rb.getString("zenTao.password");}public static void main(String[] args) {start();}public static void start() {System.setProperty(webDriver, webDriverPath);try {if (Objects.isNull(driver)){driver = new ChromeDriver();userLogin(driver);}work(driver);} catch (Exception e) {e.printStackTrace();} finally {if (Objects.nonNull(driver)) {//  driver.close();}}}/*** 开始工作*/private static void work(WebDriver driver) throws Exception {WebElement projectButtonWebElement = driver.findElement(By.xpath("//li[@data-id='project']/a"));projectButtonWebElement.click();WebElement taskButtonWebElement = driver.findElement(By.xpath("//li[@data-id='task']/a"));taskButtonWebElement.click();WebElement createWebElement = driver.findElement(By.xpath("//div[@id='mainMenu']/div[@class='btn-toolbar pull-right']/a[@class='btn btn-primary']"));createWebElement.click();WebElement projectWebElement = driver.findElement(By.xpath("//*[@id='project_chosen']/a"));projectWebElement.click();Thread.sleep(200);//等待0.2秒projectWebElement.findElement(By.xpath("//li[@title='"+projectName+"']")).click();WebElement typeWebElement = driver.findElement(By.xpath("//*[@id='type_chosen']/a"));typeWebElement.click();Thread.sleep(200);//等待0.2秒typeWebElement.findElement(By.xpath("//li[@title='"+taskType+"']")).click();WebElement peopleWebElement = driver.findElement(By.xpath("//*[@id='assignedTo_chosen']/a"));peopleWebElement.click();Thread.sleep(200);//等待0.2秒peopleWebElement.findElement(By.xpath("//li[@title='"+people+"']")).click();WebElement taskWebElement = driver.findElement(By.name("name"));taskWebElement.sendKeys(taskName);WebElement estimateWebElement = driver.findElement(By.name("estimate"));estimateWebElement.sendKeys(estimate);WebElement contentWebElement = driver.findElement(By.xpath("//div[@class='ke-edit']/iframe"));contentWebElement.sendKeys(content);WebElement submitWebElement = driver.findElement(By.id("submit"));submitWebElement.click();Thread.sleep(2000);//等待0.5秒List<WebElement>  taskList= driver.findElements(By.xpath("//table[@id='taskList']/tbody/tr"));String id=taskList.get(0).getAttribute("data-id");String name=taskList.get(0).findElements(By.tagName("td")).get(2).getAttribute("title");System.out.println("task#"+id+"  "+name);}/*** 获取token*/private static String getToken(WebDriver driver) throws Exception {if (StringUtils.isBlank(driver.getCurrentUrl())) {throw new Exception("获取token链接有误");}String token = driver.getCurrentUrl().split("token=")[1];if (StringUtils.isBlank(token)) {throw new Exception("token错误");}return token;}/*** 登录模块*/private static void userLogin(WebDriver driver) throws Exception {driver.get(targetPath);WebElement usernameWebElement = driver.findElement(By.name("account"));usernameWebElement.clear();usernameWebElement.sendKeys(username);WebElement passwordWebElement = driver.findElement(By.name("password"));passwordWebElement.clear();passwordWebElement.sendKeys(password);WebElement helpWebElement = driver.findElement(By.id("keepLoginon"));helpWebElement.click();WebElement btnWebElement = driver.findElement(By.id("submit"));btnWebElement.click();Thread.sleep(200);}
}

配置文件zenTao.properties

zenTao.username=liudehua
zenTao.password=123456

用Java selenium实现禅达快速创建任务相关推荐

  1. Java / Cloud:如何快速创建支持Kubernetes的REST微服务

    可以肯定地说,如今微服务与云的结合风靡一时. 微服务的开发比以往任何时候都多,从而导致应用程序部署数量增加. 在过去的十年中,开发了诸如Docker和Kubernetes之类的容器化和编排工具,从而使 ...

  2. java集合的批量新建_java使用Arrays.asList快速创建List集合

    程序中某段案例代码如下: Map> tMap = new HashMap>(); tMap.put(name, Arrays.asList(new CronTrigger[] { trig ...

  3. Maven - 快速创建Java工程和Web工程

    Maven - 快速创建Java工程和Web工程 [1]通过Eclipse创建Java工程 - - New - Maven Project 第一种- - 创建简单工程 填写坐标 第二种- -不使用简单 ...

  4. java list初始容量_java中快速创建带初始值的List和Map实例

    java中快速创建带初始值的List和Map实例 初始化一个List和Map对象并为期加入值的写法如下: List sList = new ArrayList(); sList.add("s ...

  5. java 快速创建map_快速创建 Map

    想要快速创建Map,不用频繁new,最快的方法就是用Guava,使用ImmutableMap.of("a", 1, "b", 2, "c", ...

  6. Java快速创建多级目录

    思路: 1.创建目录文件对象  File file = new File()  2.判断目录是否存在  !file.exists() 3.不存在则创建文件  file.mkdirs() import ...

  7. java 快速创建List 数组array转List

    当我们想要创建一个ArrayList 并进行初始化,放入一些数据. 直接创建空list并依次add比较慢,可以用如下方法快速创建. 1.从元素创建List: 如下方式创建一个不可变List,得到的li ...

  8. 使用Spring Initializer快速创建Spring Boot项目

    使用Spring Initializer快速创建Spring Boot项目 1.IDEA:使用 Spring Initializer快速创建项目 IDE都支持使用Spring的项目创建向导快速创建一个 ...

  9. 谈谈java的线程池(创建、机制)

    目录 Executors创建线程池默认方法 自定义线程池 Executors创建线程池默认方法 newFixedThreadPool()方法,该方法返回一个固定数量的线程池,该方法的线程数始终不变,当 ...

最新文章

  1. 准确度判断 语义分割_Mask R-CNN(目标检测语义分割)测试
  2. 组合计数 ---- 732 Div2 D. AquaMoon and Chess
  3. numpy维度交换_numpy之转置(transpose)和轴对换
  4. 神经网络的反向传导到底是在干什么?
  5. django models索引_Django开发者常犯的7种错误
  6. c++ 中extern C 及#ifdef __cplusplus的作用
  7. Oracle 10g RAC 升级(CPU Update)之--升级CRS
  8. python3.5学习笔记:linux6.4 安装python3 pip setuptools
  9. java top类,Java8 Top Tips,java8toptips
  10. shell脚本解析5----循环语句
  11. 如何搭建简易的Wiki系统
  12. Python计算机视觉实验五——针孔照相机模型
  13. 什么是数据可视化技术
  14. css 实现图片间用间隔线(竖线)
  15. 10G SR光模块取消ER调试可行性分析
  16. 面试题67. 把字符串转换成整数
  17. PWM 实现调光——测试pwn的功能
  18. 【新年计划】过去的2021,2022年的期许
  19. Apache Flink 1.14.4 on yarn ha环境搭建
  20. 使用Quartus II9.0验证74161计数器

热门文章

  1. 希尔瓦娜斯服务器位置,魔兽世界9.1希尔瓦娜斯战斗信息与场景一览[多图]
  2. 视觉检测设备,工业视觉检测设备的介绍
  3. SAP Change Request Management (ChaRM)基础教程
  4. Elsevier上发表论文的若干要求
  5. 初识JavaScript柯理化
  6. 哪种邮件群发软件最好用?不骗人,能免费发邮件.群发邮件进收件箱.
  7. BT 种子 tracker 磁链
  8. 酒店数字营销报告:数据导向的个性化营销策略
  9. Excel VBA代码密码破解
  10. 互联网早报:华为高精度地图拟年内商用,正在一线城市采集数据