捕获弹出div的text问题困扰我好几天,请大神帮忙!
使用环境:java
selenium2
使用场景:
点击确定后,请求后台webservice返回结果后弹出一个div提示“操作成功!”后消失,之后页面刷新。
原码如下(jquery)
function(result){
if(result.isSuccess=="true"){
$.dialog.tips(result.tips);//这就是弹出的div
location.reload();//这是页面刷新
我写了个方法如下,如果页面不刷新,能成功捕获。所以能定位是因为页面刷新而抛的异常:
rg.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up
Command duration or timeout: 834 milliseconds
我的方法:
public String getDialogTips(WebDriver webDriver){
JavascriptExecutor javascriptExecutor = (JavascriptExecutor)webDriver;
String tip="";
while (true) {
long begin=System.currentTimeMillis();
WebElement div =(WebElement)javascriptExecutor.executeScript("return $('.aui_content').find('div').get(0);");
System.out.println("time=="+(System.currentTimeMillis()-begin));
if(div!=null){
tip = div.getText();
System.out.println("tip=="+tip);
if (tip.length() > 0) {
break;
}
}
}
return tip;
}
请救大神如果捕获这个提示框内容啊???~~~~~~~~~~~~困惑啊! 程序运行到 tip = div.getText()时报的错 页面刷新之后是要重新去find元素的,然后才可以操作,这是webdriver的机制。不然就是报你上面的错误,element not found in cache。
页:
[1]