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秒检查一个元素(仅存在于站点的根页面上)是否可以执行单击操作,或者该元素是否存在于页面上,这可能是检查没有发生刷新事件的有效条件。我想这会起作用,但是