用Java selenium实现禅达快速创建任务
首先下载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实现禅达快速创建任务相关推荐
- Java / Cloud:如何快速创建支持Kubernetes的REST微服务
可以肯定地说,如今微服务与云的结合风靡一时. 微服务的开发比以往任何时候都多,从而导致应用程序部署数量增加. 在过去的十年中,开发了诸如Docker和Kubernetes之类的容器化和编排工具,从而使 ...
- java集合的批量新建_java使用Arrays.asList快速创建List集合
程序中某段案例代码如下: Map> tMap = new HashMap>(); tMap.put(name, Arrays.asList(new CronTrigger[] { trig ...
- Maven - 快速创建Java工程和Web工程
Maven - 快速创建Java工程和Web工程 [1]通过Eclipse创建Java工程 - - New - Maven Project 第一种- - 创建简单工程 填写坐标 第二种- -不使用简单 ...
- java list初始容量_java中快速创建带初始值的List和Map实例
java中快速创建带初始值的List和Map实例 初始化一个List和Map对象并为期加入值的写法如下: List sList = new ArrayList(); sList.add("s ...
- java 快速创建map_快速创建 Map
想要快速创建Map,不用频繁new,最快的方法就是用Guava,使用ImmutableMap.of("a", 1, "b", 2, "c", ...
- Java快速创建多级目录
思路: 1.创建目录文件对象 File file = new File() 2.判断目录是否存在 !file.exists() 3.不存在则创建文件 file.mkdirs() import ...
- java 快速创建List 数组array转List
当我们想要创建一个ArrayList 并进行初始化,放入一些数据. 直接创建空list并依次add比较慢,可以用如下方法快速创建. 1.从元素创建List: 如下方式创建一个不可变List,得到的li ...
- 使用Spring Initializer快速创建Spring Boot项目
使用Spring Initializer快速创建Spring Boot项目 1.IDEA:使用 Spring Initializer快速创建项目 IDE都支持使用Spring的项目创建向导快速创建一个 ...
- 谈谈java的线程池(创建、机制)
目录 Executors创建线程池默认方法 自定义线程池 Executors创建线程池默认方法 newFixedThreadPool()方法,该方法返回一个固定数量的线程池,该方法的线程数始终不变,当 ...
最新文章
- 准确度判断 语义分割_Mask R-CNN(目标检测语义分割)测试
- 组合计数 ---- 732 Div2 D. AquaMoon and Chess
- numpy维度交换_numpy之转置(transpose)和轴对换
- 神经网络的反向传导到底是在干什么?
- django models索引_Django开发者常犯的7种错误
- c++ 中extern C 及#ifdef __cplusplus的作用
- Oracle 10g RAC 升级(CPU Update)之--升级CRS
- python3.5学习笔记:linux6.4 安装python3 pip setuptools
- java top类,Java8 Top Tips,java8toptips
- shell脚本解析5----循环语句
- 如何搭建简易的Wiki系统
- Python计算机视觉实验五——针孔照相机模型
- 什么是数据可视化技术
- css 实现图片间用间隔线(竖线)
- 10G SR光模块取消ER调试可行性分析
- 面试题67. 把字符串转换成整数
- PWM 实现调光——测试pwn的功能
- 【新年计划】过去的2021,2022年的期许
- Apache Flink 1.14.4 on yarn ha环境搭建
- 使用Quartus II9.0验证74161计数器
热门文章
- 希尔瓦娜斯服务器位置,魔兽世界9.1希尔瓦娜斯战斗信息与场景一览[多图]
- 视觉检测设备,工业视觉检测设备的介绍
- SAP Change Request Management (ChaRM)基础教程
- Elsevier上发表论文的若干要求
- 初识JavaScript柯理化
- 哪种邮件群发软件最好用?不骗人,能免费发邮件.群发邮件进收件箱.
- BT 种子 tracker 磁链
- 酒店数字营销报告:数据导向的个性化营销策略
- Excel VBA代码密码破解
- 互联网早报:华为高精度地图拟年内商用,正在一线城市采集数据