我遇到了以下问题:我正在使用HtmlUnitDriver和Browserversion Firefox_3_6运行带有Selenium 2.9的JUnit testCase.JavaScript已启用.现在,当它应该调用并执行以下javaScript函数时,它什么都不做:
function openIdsDocument()
{
var windowBounds = getWindowBounds();
var XMLHTTP = getAjaxRequestObject("XYZ.do?availableWidth="+windowBounds.width+"&availableHeight="+windowBounds.height, "", true);
if (XMLHTTP != null)
{
XMLHTTP.onreadystatechange = function alertAJAXResponse()
{
if (XMLHTTP.readyState == 4)
{
window.location.href = getContextPath() + "ABC.do";
}
};
XMLHTTP.send("timestamp=" + <%=System.currentTimeMillis()%>);
}
getLoadingState();
}
Run Code Online (Sandbox Code Playgroud)
我想去ABC.do
如果我使用FirefoxDriver执行我的测试,它可以工作.
有没有办法让这个使用HtmlUnitDriver?如果我手动调用driver.get(" http://host/ABC.do "),我的测试工作,但这不是正确的方法.
我必须使用一个项目,我不能使用Java-Config for Spring,但我必须使用XML-Config.现在我正在寻找与Java-Config中的@EnableRetry相当的XML-Config.
我希望这条线能够运作.
@Retryable(SQLException.class)
public void saveOrUpdate(Entity entity)
Run Code Online (Sandbox Code Playgroud) 我正在使用Selenium 2 Webdriver。
我想单击一个链接,但是链接文本可以是“ Linktext”或“ LINKTEXT”。有没有比这更好的方法:
List<WebElement> list = driver.findElements(By.linkText("Linktext"));
if(list.size()>0){
driver.findElement(By.linkText("Linktext")).click();
} else {
driver.findElement(By.linkText("LINKTEXT")).click();
}
Run Code Online (Sandbox Code Playgroud)
API和Google并没有真正帮助我。任何想法如何忽略大写?
目前我以这种方式截取我的测试失败的截图:
@AfterMethod(alwaysRun=true)
public void catchExceptions(ITestResult result){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
String methodName = result.getName();
if(!result.isSuccess()){
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(scrFile, new File((String) PathConverter.convert("failure_screenshots/"+methodName+"_"+formater.format(calendar.getTime())+".png")));
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以将自己的屏幕截图包含在TestNG报告链接或图片中吗?如果有,怎么样?
我在网上找到的只是FEST框架.但由于我已经截取屏幕截图,我不想使用另一个框架.
我目前正在使用带有Selenium Grid 2的RemoteWebDriver通过TestNG套件运行我的测试.这适用于Firefox和IE.现在我添加了Chrome并且测试运行正常,但是在套件的所有测试之后调用driver.quit()时总是得到一个Exception(适用于FF和IE).
Exception看起来像这样:
Error communicating with the remote browser. It may have died.
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:472)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476)
at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:346)
at setups.StandardChromeSetup.tearDown(StandardChromeSetup.java:42)
19 lines not shown
Caused by Error communicating with the remote browser. It may have died.
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:467)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476)
at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:346)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
at $Proxy1.quit(Unknown Source)
at org.openqa.selenium.support.events.EventFiringWebDriver.quit(EventFiringWebDriver.java:194)
at org.openqa.selenium.remote.server.handler.DeleteSession.call(DeleteSession.java:42)
at org.openqa.selenium.remote.server.handler.DeleteSession.call(DeleteSession.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at …Run Code Online (Sandbox Code Playgroud) 我目前正在使用嵌入式neo4j运行我的webapp.现在我想换成一个独立的neo4j服务器.在考虑使用独立服务器时,我偶然发现了spring-data-neo4j.使用spring-data-jpa并记住连接到db是多么容易,我开始寻找一个如何使用spring-data-neo4j的好教程.
使用spring-data-neo4j-rest似乎是可能的.这留下了如何使用java配置而不是使用xml配置它的问题.
该弹簧数据的Neo4j文档不提供任何相关信息.
我遇到了一个常见的问题,我想将一个字符串解析为一个日期.
字符串看起来像这样15.06.11 13:38:33 UTC.但结果是15.38.0011 13:38:33 UTC使用用于解析String to Date的格式化程序进行格式化.TimeInMillis返回负值-61818978087000.
SimpleDateFormat formatter = new SimpleDateFormat("dd.mm.yyyy HH:mm:ss z");
formatter.setLenient(false);
Date time = formatter.parse("15.06.11 13:38:33 UTC");
Calendar timestamp = Calendar.getInstance();
timestamp.setTime(time);
Run Code Online (Sandbox Code Playgroud)
我很感谢能得到的每一个帮助.也许我犯了一些愚蠢的错误,但我没有看到它.请睁开眼睛.
我正在从控制器中获取外部网页(作为字符串)。如何将包含HTML的字符串作为返回ModelAndView?
java ×7
selenium ×3
spring ×3
webdriver ×3
testng ×2
ajax ×1
javascript ×1
neo4j ×1
spring-mvc ×1
spring-retry ×1