Index: ssts-selenium-test/src/test/java/test_4_1/tools/Utils.java =================================================================== diff -u -r17893 -r17894 --- ssts-selenium-test/src/test/java/test_4_1/tools/Utils.java (.../Utils.java) (revision 17893) +++ ssts-selenium-test/src/test/java/test_4_1/tools/Utils.java (.../Utils.java) (revision 17894) @@ -257,16 +257,10 @@ element = fluentWaitUntilFind(by); if (ACTION_CLICK.equalsIgnoreCase(actionType)){ + // Actions actions = new Actions(driver); - // 等待元素变为可点击状态 -// Wait wait = new FluentWait(driver) -// .withTimeout(5000, TimeUnit.MILLISECONDS) -// .pollingEvery(250, TimeUnit.MILLISECONDS) -// .ignoring(NoSuchElementException.class) -// .ignoring(StaleElementReferenceException.class) -// .ignoring(NullPointerException.class); -// -// wait.until(ExpectedConditions.elementToBeClickable(element)); + // 将鼠标移动到html元素,然后click,似乎能增强click的成功率 + // actions.moveToElement(element).click().build().perform(); element.click(); } @@ -294,7 +288,33 @@ } return element; } + + /** + * 重复查找获取控件的文本 + * @param by + * @return + */ + public static String retryingFindAndGetText(By by) { + String text = ""; + int attempts = 0; + while (attempts < 3) { + try { + WebElement element = fluentWaitUntilFind(by); + if (element != null){ + text = element.getText(); + } + else{ + continue; + } + break; + } catch (Exception e) { + } + attempts++; + } + return text; + } + /** * 重复查找和click,当出现引用的element过时后,重新查找该element * Index: ssts-selenium-test/src/test/java/test_4_1/Disinfection.java =================================================================== diff -u -r17867 -r17894 --- ssts-selenium-test/src/test/java/test_4_1/Disinfection.java (.../Disinfection.java) (revision 17867) +++ ssts-selenium-test/src/test/java/test_4_1/Disinfection.java (.../Disinfection.java) (revision 17894) @@ -512,8 +512,7 @@ @Test public void disinfection_failAndSuccess() { try { - WebElement user = Utils.retryingFind(By.id("sterilizationUser")); - String text = user.getText(); + String text = Utils.retryingFindAndGetText(By.id("sterilizationUser")); Utils.retryingFindAndSendKeys(By.id("sterilizationPurpose"), Keys.DOWN);