Added VerifyElementPresent and VerifyElementNotPresent

This commit is contained in:
Edward Jakubowski
2014-05-08 08:56:38 -04:00
parent 0d5a2b5d5b
commit dcd8026204
4 changed files with 62 additions and 8 deletions

View File

@@ -167,6 +167,12 @@ public class CommandPopupMenu extends JPopupMenu {
CommandMenuItem mntmSetUpdateThreshold = new CommandMenuItem("setUpdateThreshold", 2, false);
add(mntmSetUpdateThreshold);
CommandMenuItem mntmVerifyElementNotPresent = new CommandMenuItem("verifyElementNotPresent", 2);
add(mntmVerifyElementNotPresent);
CommandMenuItem mntmVerifyElementPresent = new CommandMenuItem("verifyElementPresent", 2);
add(mntmVerifyElementPresent);
CommandMenuItem mntmWaitforclass = new CommandMenuItem("waitForClass", 2, false);
add(mntmWaitforclass);

View File

@@ -11,6 +11,7 @@ import java.awt.Point;
import java.text.DecimalFormat;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import org.synthuse.commands.*;
@@ -126,7 +127,14 @@ public class CommandProcessor implements Runnable{
events.statusChanged("Script Execution " + forcedStr + " with " + scriptErrorCount + " error(s) in " + new DecimalFormat("#.###").format(seconds) + " seconds");
events.executionCompleted();
if (scriptErrorCount > 0 && !isQuiet)
JOptionPane.showMessageDialog(null, lastError);
{
JOptionPane optionPane = new JOptionPane(lastError);
JDialog dialog = optionPane.createDialog("Errors");
dialog.setAlwaysOnTop(SynthuseDlg.config.isAlwaysOnTop());
dialog.setVisible(true);
dialog.dispose();
//JOptionPane.showMessageDialog(null, lastError);
}
}
public Object execute(String command, String[] args) {
@@ -251,6 +259,10 @@ public class CommandProcessor implements Runnable{
return main.cmdSetTimeout(args);
if (command.equals("setUpdateThreshold"))
return main.cmdSetUpdateThreshold(args);
if (command.equals("verifyElementNotPresent"))
return main.cmdVerifyElementNotPresent(args);
if (command.equals("verifyElementPresent"))
return main.cmdVerifyElementPresent(args);
if (command.equals("waitForTitle"))
return main.cmdWaitForTitle(args);
if (command.equals("waitForText"))

View File

@@ -72,7 +72,7 @@ public class SynthuseDlg extends JFrame {
/**
*
*/
public static String VERSION_STR = "1.1.6";
public static String VERSION_STR = "1.1.7";
public static String RES_STR_MAIN_ICON = "/org/synthuse/img/gnome-robots.png";
public static String RES_STR_REFRESH_IMG = "/org/synthuse/img/rapidsvn.png";

View File

@@ -69,7 +69,7 @@ public class MainCommands extends BaseCommand {
return false;
long totalAttempts = (long) (CommandProcessor.WAIT_TIMEOUT_THRESHOLD / (CommandProcessor.XML_UPDATE_THRESHOLD * 1000));
long attemptCount = 0;
String xpath = "/EnumeratedWindows/win[@TEXT='" + WindowsEnumeratedXml.escapeXmlAttributeValue(args[0].toUpperCase()) + "']";
String xpath = "/EnumeratedWindows/*[@TEXT='" + WindowsEnumeratedXml.escapeXmlAttributeValue(args[0].toUpperCase()) + "']";
WinPtr handle = findHandleWithXpath(xpath, true);
if (!handle.isEmpty())// first test without a timeout
return true;
@@ -82,7 +82,9 @@ public class MainCommands extends BaseCommand {
if (isProcessorStopped())
break;
}
return handle != null;
if (handle.isEmpty())
appendError("Error: command '" + getCurrentCommand() + "' failed to find element matching " + args[0]);
return (!handle.isEmpty());
}
public boolean cmdWaitForText(String[] args) {
@@ -103,7 +105,9 @@ public class MainCommands extends BaseCommand {
if (isProcessorStopped())
break;
}
return handle != null;
if (handle.isEmpty())
appendError("Error: command '" + getCurrentCommand() + "' failed to find element matching " + args[0]);
return (!handle.isEmpty());
}
public boolean cmdWaitForClass(String[] args) {
@@ -111,7 +115,7 @@ public class MainCommands extends BaseCommand {
return false;
long totalAttempts = (long) (CommandProcessor.WAIT_TIMEOUT_THRESHOLD / (CommandProcessor.XML_UPDATE_THRESHOLD * 1000));
long attemptCount = 0;
String xpath = "//win[@CLASS='" + WindowsEnumeratedXml.escapeXmlAttributeValue(args[0].toUpperCase()) + "']";
String xpath = "//[@CLASS='" + WindowsEnumeratedXml.escapeXmlAttributeValue(args[0].toUpperCase()) + "']";
WinPtr handle = findHandleWithXpath(xpath, true);
if (!handle.isEmpty())// first test without a timeout
return true;
@@ -124,7 +128,9 @@ public class MainCommands extends BaseCommand {
if (isProcessorStopped())
break;
}
return handle != null;
if (handle.isEmpty())
appendError("Error: command '" + getCurrentCommand() + "' failed to find element matching " + args[0]);
return (!handle.isEmpty());
}
public boolean cmdWaitForVisible(String[] args) {
@@ -144,7 +150,37 @@ public class MainCommands extends BaseCommand {
if (isProcessorStopped())
break;
}
return handle != null;
if (handle.isEmpty())
appendError("Error: command '" + getCurrentCommand() + "' failed to find element matching " + args[0]);
return (!handle.isEmpty());
}
public boolean cmdVerifyElementNotPresent(String[] args)
{
if (!checkArgumentLength(args, 1))
return false;
WinPtr handle = findHandleWithXpath(args[0], true);
if (!handle.isEmpty())
{
appendError("Error: command '" + getCurrentCommand() + "' failed to NOT find element matching " + args[0]);
return false;
}
else
return true;
}
public boolean cmdVerifyElementPresent(String[] args)
{
if (!checkArgumentLength(args, 1))
return false;
WinPtr handle = findHandleWithXpath(args[0], true);
if (!handle.isEmpty())
return true;
else
{
appendError("Error: command '" + getCurrentCommand() + "' failed to find element matching " + args[0]);
return false;
}
}
}