Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查刷新页面事件是否发生在UI事件之后(例如,单击按钮)_Java_Selenium Webdriver_Page Refresh - Fatal编程技术网

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

Java 如何检查刷新页面事件是否发生在UI事件之后(例如,单击按钮),java,selenium-webdriver,page-refresh,Java,Selenium Webdriver,Page Refresh,获取以下代码: 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 fi

获取以下代码:

 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: 在执行搜索操作后验证元素

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;}");
这两个代码片段都经过了谷歌的测试


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

解决方案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;}");
这两个代码片段都经过了谷歌的测试


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

解决方案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;}");
这两个代码片段都经过了谷歌的测试


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

解决方案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;}");
这两个代码片段都经过了谷歌的测试


最好在执行搜索操作后检查元素,而不是检查页面是否刷新。同意@AbhishekYadav,最好检查页面上的条件,当搜索字符串小于3个字符时是否显示任何验证消息?如果是这样,您应该断言该消息是正确的present@SteveCrawford和Abhishek Yadav-如果搜索字符串小于3个字符,则页面上没有消息和更改,也没有刷新事件。我只是为了学习而尝试一下。我在网上找不到任何解决办法。我知道一些刷新页面的方法,但是我没有发现任何检查此事件的方法。在你们看来(你们两个),如果我每隔10秒检查一个元素(仅存在于站点的根页面上)是否可以执行单击操作,或者该元素是否存在于页面上,这可能是检查没有发生刷新事件的有效条件。我想这会起作用,但并不理想。在搜索之前,执行findElement以获取页面上的元素。搜索页面是否已刷新后,如果您尝试单击该页面,将得到StaleElementException。如果页面未刷新,则单击将成功。最好在执行搜索操作后检查元素,而不是检查页面是否刷新。同意@AbhishekYadav,最好检查页面上的条件,当搜索字符串<3个字符时是否显示任何验证消息?如果是这样,您应该断言该消息是正确的present@SteveCrawford和Abhishek Yadav-如果搜索字符串小于3个字符,则页面上没有消息和更改,也没有刷新事件。我只是为了学习而尝试一下。我在网上找不到任何解决办法。我知道一些刷新页面的方法,但是我没有发现任何检查此事件的方法。在你们看来(你们两个),如果我每隔10秒检查一个元素(仅存在于站点的根页面上)是否可以执行单击操作,或者该元素是否存在于页面上,这可能是检查没有发生刷新事件的有效条件。我想这会起作用,但并不理想。在搜索之前,执行findElement以获取页面上的元素。搜索页面是否已刷新后,如果您尝试单击该页面,将得到StaleElementException。如果页面未刷新,则单击将成功。最好在执行搜索操作后检查元素,而不是检查页面是否刷新。同意@AbhishekYadav,最好检查页面上的条件,当搜索字符串<3个字符时是否显示任何验证消息?如果是这样,您应该断言该消息是正确的present@SteveCrawford和Abhishek Yadav-如果搜索字符串小于3个字符,则页面上没有消息和更改,也没有刷新事件。我只是为了学习而尝试一下。我在网上找不到任何解决办法。我知道一些刷新页面的方法,但是我没有发现任何检查此事件的方法。在你们看来(你们两个),如果我每隔10秒检查一个元素(仅存在于站点的根页面上)是否可以执行单击操作,或者该元素是否存在于页面上,这可能是检查没有发生刷新事件的有效条件。我想这会起作用,但并不理想。在搜索之前,执行findElement以获取页面上的元素。搜索页面是否已刷新后,如果您尝试单击该页面,将得到StaleElementException。如果页面未刷新,则单击将成功。最好在执行搜索操作后检查元素,而不是检查页面是否刷新。同意@AbhishekYadav,最好检查页面上的条件,当搜索字符串<3个字符时是否显示任何验证消息?如果是这样,您应该断言该消息是正确的present@SteveCrawford和Abhishek Yadav-如果搜索字符串小于3个字符,则页面上没有消息和更改,也没有刷新事件。我只是为了学习而尝试一下。我在网上找不到任何解决办法。我知道一些刷新页面的方法,但是我没有发现任何检查此事件的方法。在你们看来(你们两个),如果我每隔10秒检查一个元素(仅存在于站点的根页面上)是否可以执行单击操作,或者该元素是否存在于页面上,这可能是检查没有发生刷新事件的有效条件。我想这会起作用,但是