使用Selenium自动化搜索功能 - Java

时间:2011-05-27 03:56:45

标签: java selenium

我需要自动执行搜索功能,如下所示:

搜索字符串=(X * OR“Y”)和Z

进入此搜索系统时应断言结果。我的问题是:
1)如何在运算符之间设置优先级,因为如果有()那么应该执行它,并且用其结果检查搜索字符串的其他部分。 2)termi *可以终止,终结者。我们如何检查并断言 3)“堆栈溢出”表示结果应该完全匹配。我们怎样才能找到并断言 4)同样是NOT运算符,我们如何断言 如果您能提供任何帮助,请与我分享。

提前致谢。

1 个答案:

答案 0 :(得分:0)

有些人如何使用StringBuffer设法在java中编写代码:)

我没有存储第一个块的结果和下一个进程的结果,而是根据searchString创建了一个字符串命令,如下所示,最后激活新创建的命令并验证答案。

就像whenevenever和来自searchString一样,我们插入&&运算符和OR ||运营商。

String[] arrSearch=searchString.split("\\s");
        StringBuffer sb = new StringBuffer();
        boolean skipFlag = false;
        for(int i=0;i<arrSearch.length;i++){
            System.out.println(arrSearch[i]);
            if(!skipFlag && arrSearch[i].startsWith("\"")){
                skipFlag = true;
                continue;
            }else if(skipFlag){
                if(arrSearch[i].endsWith("\"")){
                    skipFlag = false;
                    continue;
                }else{
                    continue;
                }
            }else if(arrSearch[i].startsWith("(")){
                String temp = arrSearch[i].substring(1);
                sb.append("(selenium.isTextPresent(" + temp + ")" + " ");
            }else if(arrSearch[i].startsWith(")")){
                String temp = arrSearch[i].substring(0,arrSearch[i].length()-1);
                sb.append("selenium.isTextPresent(" + temp + "))" + " ");
            }else if(arrSearch[i].equalsIgnoreCase("AND")){
                sb.append("&&" + " ");
            }else if(arrSearch[i].equalsIgnoreCase("OR")){
                sb.append("||" + " ");
            }else if(arrSearch[i].equalsIgnoreCase("NOT")){
                sb.append("!");
            }else if(arrSearch[i].endsWith("*")){
                String temp = arrSearch[i].substring(0,arrSearch[i].length()-1);
                sb.append("selenium.isTextPresent(\"//*[contains('" + temp + "')]\")" + " ");
            }else{
                sb.append("selenium.isTextPresent(" + arrSearch[i] + ")" + " ");
            }