本人在学习selenium2java的时候,遇到过一个弹框上传大杂烩的用例,特别是有一个选时间的,得先选时,再选分。费死老劲了重要写完,没啥大坑,就是比较复杂。
//生成班课
public static void createFormalCourseAndSale(WebDriver driver, String grade, String subject) throws InterruptedException {
clickCourse(driver);
clickFormalCourse(driver);
clickAddCourse(driver);
findElementByIdAndClearSendkeys(driver, "input-title", "测试班课"+grade+subject);//输入课程标题
findElementByIdAndClick(driver, "button-toggle-grade");//选择年级
findElementByTextAndClick(driver, grade);
findElementByIdAndClick(driver, "button-toggle-subject");//选择科目
findElementByTextAndClick(driver, subject);
findElementByIdAndClearSendkeys(driver, "input-description", "测试招生人数1人");//输入知识点
findElementByIdAndClick(driver, "button-toggle-teacher_id");//选择主讲老师
findElementByTextAndClick(driver, "李");
findElementByIdAndClick(driver, "input-enroll_deadline_date");//选择截止日期
findElementByTextAndClick(driver, "30");
sleep(0);
findElementByIdAndClick(driver, "input-enroll_deadline_time");//选择截止时间
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[8]/div[3]/div/div[2]/div[1]");
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[8]/div[3]/div/div[3]/div[1]");
findElementByIdAndClearSendkeys(driver, "input-time_des", "测试招生人数1人");//输入时间描述
findElementByIdAndClearSendkeys(driver, "input-orig_price", 230);//输入价格
findElementByIdAndClearSendkeys(driver, "input-totalEnrollLimit", 1);//输入人数
findElementByIdAndClearSendkeys(driver, "input-video_url", "http://cdn.gaotu100.com/video/mingdoudou0505.mp4");//输入介绍视频视频
findElementByIdAndClearSendkeys(driver, "input-detail_url", "http://www.gaotu100.com/course/XE4007.html");//输入班课详情
findElementByIdAndClick(driver, "input-start_time_date");//选择开始日期
findElementByTextAndClick(driver, "29");
sleep(0);
findElementByIdAndClick(driver, "input-start_time_time");//选择开始时间
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[9]/div[3]/div/div[2]/div[1]");
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[9]/div[3]/div/div[3]/div[1]");
findElementByIdAndClick(driver, "input-end_time_date");//选择截止日期
findElementByTextAndClick(driver, "30");
sleep(0);
findElementByIdAndClick(driver, "input-end_time_time");//选择截止时间
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[10]/div[3]/div/div[2]/div[1]");
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[10]/div[3]/div/div[3]/div[1]");
findElementByIdAndClearSendkeys(driver, "input-deliver_cost", 20);//输入运费
scrollToTop(driver);//滚动最上方
findElementByIdAndClick(driver, "button-toggle-teacher_list");//选择辅导老师
findElementByXpathAndClick(driver, ".//*[@id='choice-container-teacher_list']/div[6]/div/label/i");
findElementByIdAndClick(driver, "btn-ok-teacher_list");//确定
sleep(0);
findElementByIdAndClick(driver, "button-toggle-tag_list");//选择课程特色
findElementByXpathAndClick(driver, ".//*[@id='choice-container-tag_list']/div[1]/div/label/i");
findElementByXpathAndClick(driver, ".//*[@id='choice-container-tag_list']/div[2]/div/label/i");
findElementByXpathAndClick(driver, ".//*[@id='choice-container-tag_list']/div[3]/div/label/i");
findElementByXpathAndClick(driver, ".//*[@id='choice-container-tag_list']/div[4]/div/label/i");
findElementByIdAndClick(driver, "btn-ok-tag_list");//确定
sleep(0);
findElementByIdAndClick(driver, "button-toggle-recommend_list");//选择推荐课程
findElementByXpathAndClick(driver, ".//*[@id='choice-container-recommend_list']/div[7]/div/label/i");
sleep(0);
findElementByXpathAndClick(driver, ".//*[@id='choice-container-recommend_list']/div[8]/div/label/i");
findElementByIdAndClick(driver, "btn-ok-recommend_list");//确定
sleep(0);
findElementByIdAndClearSendkeys(driver, "input-file-cover", "C:\\Users\\fankaiqiang\\Desktop\\123.JPG");//上传图片
clickSave(driver);
sleep(0);
clickSure(driver);
boolean key1 = true;
while(key1){//等待保存完毕,再次确认
if (exists(driver, By.xpath("html/body/div[12]/h2")) & getTextByXpath(driver, "html/body/div[12]/h2").equals("保存成功")) {
key1 = false;
break;
}
}
clickSure(driver);
boolean key = true;
while(key){//等待直播课页面出现
if (exists(driver, By.id("input-begin_time_date"))) {
key = false;
break;
}
}
findElementByIdAndClearSendkeys(driver, "input-title", "直播课1");//输入直播课名称
findElementByIdAndClick(driver, "input-begin_time_date");//选择开始日期
findElementByTextAndClick(driver, "30");
sleep(0);
findElementByIdAndClick(driver, "input-begin_time_time");//选择开始时间
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[3]/div[3]/div/div[2]/div[2]");//选择1点开始
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[3]/div[3]/div/div[3]/div[1]");
findElementByIdAndClick(driver, "input-end_time_time");//选择结束时间
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[4]/div[3]/div/div[2]/div[3]");//选择两点结束
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[4]/div[3]/div/div[3]/div[1]");
findElementByIdAndClick(driver, "button-toggle-live_address_id");//选择直播间
findElementByXpath(driver, ".//*[@id='dropdown-live_address_id']/li["+getRandomInt(5)+"]/a");//此处随机设置直播间避免时间冲突
findElementByIdAndClick(driver, "input-exercise_deadline_date");//选择作业截止日期
findElementByTextAndClick(driver, "30");
sleep(0);
findElementByIdAndClick(driver, "input-exercise_deadline_time");//选择作业截止时间
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[5]/div[3]/div/div[2]/div[7]");//选择六点截止
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[5]/div[3]/div/div[3]/div[1]");
findElementByIdAndClick(driver, "input-revise_deadline_date");//选择作业订正日期
findElementByTextAndClick(driver, "30");
sleep(0);
findElementByIdAndClick(driver, "input-revise_deadline_time");//选择作业订正时间
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[6]/div[3]/div/div[2]/div[8]");//选择七点截止
sleep(0);
findElementByXpathAndClick(driver, "html/body/div[6]/div[3]/div/div[3]/div[1]");
findElementByIdAndClearSendkeys(driver, "input-exercise_number", 5);//输入试题数目
sleep(0);
clickSave(driver);
sleep(0);
clickSure(driver);
boolean key2 = true;
while(key2){//等待保存完毕,再次确认
if (exists(driver, By.xpath("html/body/div[8]/h2")) & getTextByXpath(driver, "html/body/div[8]/h2").equals("保存成功")) {
key2 = false;
break;
}
}
clickSure(driver);
sleep(1);
findElementByTextAndClick(driver, "返回");
clickCourse(driver);
clickFormalCourse(driver);
findElementByXpathAndClick(driver, ".//*[@id='btnContainer0']/div[1]/button[2]");//点击审核
findElementByXpathAndClick(driver, ".//*[@id='btnContainer0']/div[1]/ul/li[2]/a");//点击在售
sleep(1);
clickSure(driver);
}
这里着重说一下中间这个地方的几行代码,判断条件必须是&链接,不能用&&,不然会报错的。
boolean key2 = true;
while(key2){//等待保存完毕,再次确认
if (exists(driver, By.xpath("html/body/div[8]/h2")) & getTextByXpath(driver, "html/body/div[8]/h2").equals("保存成功")) {
key2 = false;
break;
}
}
发几张弹框的图片