有些输入框内有光标时会有标签的变化,比如多加了个类名,多加了个属性之类的,可以按下tab后判断需要判断的元素是否有多一个属性来达到目的,此次对selenium进行了封装,思路一样就行。
public String AddPurchaseOrder() throws Exception {
driver.switchIframe(purchaseOrderPage.PurchaseOrderIframe());
//新增
elementOperate.click(purchaseOrderPage.NewAddition());
Thread.sleep(3000);
driver.switchIframeDefaultContent();
driver.switchIframe(purchaseOrderPage.AddPurchaseOrderIframe());
elementOperate.clickEnter();
Thread.sleep(2000);
elementOperate.click(purchaseOrderPage.ProductCode());
ArrayList<String> attributes = new ArrayList<>();
//获取动态商品编码
Thread.sleep(300);
String attribute1 = elementOperate.getAttribute(purchaseOrderPage.ProductCodeDynamics1(), "contenteditable");
Thread.sleep(300);
elementOperate.clickTap();
String attribute2 = elementOperate.getAttribute(purchaseOrderPage.ProductCodeDynamics2(), "contenteditable");
Thread.sleep(300);
elementOperate.clickTap();
String attribute3 = elementOperate.getAttribute(purchaseOrderPage.ProductCodeDynamics3(), "contenteditable");
Thread.sleep(300);
elementOperate.clickTap();
String attribute4 = elementOperate.getAttribute(purchaseOrderPage.ProductCodeDynamics4(), "contenteditable");
Thread.sleep(300);
elementOperate.clickTap();
String attribute5 = elementOperate.getAttribute(purchaseOrderPage.ProductCodeDynamics5(), "contenteditable");
Thread.sleep(300);
elementOperate.clickTap();
String attribute6 = elementOperate.getAttribute(purchaseOrderPage.ProductCodeDynamics6(), "contenteditable");
Thread.sleep(300);
elementOperate.clickTap();
String attribute7 = elementOperate.getAttribute(purchaseOrderPage.ProductCodeDynamics7(), "contenteditable");
Thread.sleep(800);
attributes.add(attribute1);
attributes.add(attribute2);
attributes.add(attribute3);
attributes.add(attribute4);
attributes.add(attribute5);
attributes.add(attribute6);
attributes.add(attribute7);
for (String attribute:attributes){
if(attribute.contains("true")){
return "ture";
}
}
return "false";
}