有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在UI事件之后检查刷新页面事件是否发生(例如,单击按钮)

获取以下代码:

 driver.findElement(By.id("input_search")).click();
 driver.findElement(By.id("input_search")).clear();
 if(lower3 == true){
    //read a line from a doc 
    document_path = "C:\\MyProject\\src\\harness\\lower_than_3" 
    FileInputStream fis = new FileInputStream(document_path);  
    BufferedReader br = new BufferedReader(new InputStreamReader(fis));         
    while((line = br.readLine()) != null){
        //line is inserted into search field
        driver.findElement(By.id("input_search")).sendKeys(line);
        Thread.sleep(100);     

       //press search button- page should NOT refresh if string length for search is lower than three, NO search is performed
       driver.findElement(By.cssSelector("div.btn-img.submit")).click();

       //ASSERT OR VERIFY IF PAGE IS RELOADED OR NOT AFTER CLICK ON SEARCH BUTTON
       NEED HELP         
    }
    br.close();   
 }

搜索完成后,点击搜索按钮(代码区域第15行),我想检查页面刷新事件是否发生。我不想刷新页面(有很多这样的例子:),我只想检查页面是否被刷新


共 (1) 个答案

  1. # 1 楼答案

    您可以使用以下任一方法来解决您的目的:

    解决方案1: 在执行搜索操作后验证元素

    driver.findElement(By.id("input_search")).clear();
    driver.findElement(By.id("input_search")).click();
    
    //here write code to wait for an element available on search result page
    
    try{
    if(driver.findElement(By.id("search result page element")).isDisplayed() == true){
    System.out.println("Search successful");
    } catch (NoSuchElementFound ee){System.out.println("Search not successful");}
    

    解决方案2: 使用java脚本执行搜索操作后,检查页面是否已加载

    driver.findElement(By.id("input_search")).clear();
    driver.findElement(By.id("input_search")).click();
    
    //here write code to wait for sometime around 10-20 seconds
    
    JavascriptExecutor jsExecutor = (JavascriptExecutor)driver;
    String s = (String) jsExecutor.executeScript("var s1 = 'Search successful'; var s2 = 'Search not successful'; if(document.readyState === 'complete'){return s1;} else {return s2;}");
    

    Both the code snippet is tested for Google.