Selenium IDE - 返回一页,如果返回错误

时间:2014-12-18 21:51:59

标签: selenium-ide

我有一项任务是从前承包商的笨重的前端系统中检索相当多的PDF文件。必须输入文件名,搜索,重新验证文件五到六次,然后下载文件。

我已经编写了一个脚本来循环执行此操作,到目前为止,它已完成工作。但是,如果找不到该文件,它会将您吐出到新页面,在该页面中显示错误。然后你必须返回一页,然后继续。

我的问题是,我找不到告诉Selenium IDE的方法“如果您看到此错误,请返回一页并恢复”或“如果页面更改,请返回一页并继续。”

Selenium IDE是否可以遵循这样的If命令?

我已下载并安装了所有相关插件。

我的脚本如下:

    <!--Begin loop-->
    <tr>
    	<td>loadTestData</td>
    	<td>file://C:\[[the file path]]\test_data.xml</td>
    	<td></td>
    </tr>
    <tr>
    	<td>while</td>
    	<td>!testdata.EOF()</td>
    	<td></td>
    </tr>
    <tr>
    	<td>nextTestData</td>
    	<td></td>
    	<td></td>
    </tr>
    <tr>
    	<td>echo</td>
    	<td>bizcase_filename=${bizcase_filename}</td>
    	<td></td>
    </tr>
    <tr>
    	<td>type</td>
    	<td>id=srch</td>
    	<td>${bizcase_filename}</td>
    </tr>
    <!--Begin revalidation (5 times)-->
    <tr>
    	<td>click</td>
    	<td>css=input.button</td>
    	<td></td>
    </tr>
    <tr>
    	<td>pause</td>
    	<td>5000</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>css=td &gt; img</td>
    	<td></td>
    </tr>
    <tr>
    	<td>select</td>
    	<td>id=action</td>
    	<td>label=Revalidate</td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>//input[@value='Run']</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>id=pbStop</td>
    	<td></td>
    </tr>
    <tr>
    	<td>pause</td>
    	<td>5000</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>css=td &gt; img</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>//input[@value='Run']</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>id=pbStop</td>
    	<td></td>
    </tr>
    <tr>
    	<td>pause</td>
    	<td>5000</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>css=td &gt; img</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>//input[@value='Run']</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>id=pbStop</td>
    	<td></td>
    </tr>
    <tr>
    	<td>pause</td>
    	<td>5000</td>
    	<td></td>
    </tr>
    <tr>
    	<td>click</td>
    	<td>css=td &gt; img</td>
    	<td></td>
    </tr>
    <!--End revalidation, retrieve file-->
    <tr>
    	<td>click</td>
    	<td>//td[5]/a</td>
    	<td></td>
    </tr>
    <!--End loop-->
    <tr>
    	<td>endWhile</td>
    	<td></td>
    	<td></td>
    </tr>

Test_data.xml,我存储了所有文件名,如下所示:

<testdata>
	<test bizcase_filename="filename 1" />
	<test bizcase_filename="filename 2" />
	<test bizcase_filename="filename 3" />
</testdata>

1 个答案:

答案 0 :(得分:0)

您可以使用名为storeElementPresent

的内置功能

例如:

storeElementPresent id="error" x

现在,对象“错误”存储在变量x中。

然后,您可以使用gotoIf扩展程序中提供的goto_sel_ide功能来调用它。

示例:

gotoIf ${x}==true errorVisible
gotoIf ${x}==false errorNotVisible
label errorVisible
goto tryAgain //tryAgain is a label set in right place
label errorNotVisible
goto Continue
label Continue

我希望你明白这一点。您也可以使用javascript的“if”语句。

示例(与您的代码无关):

storeElementPresent id=gbqfbb x /
click javascript{if(storedVars['x'] == true){this.browserbot.findElement('id=gbqfbb').click();}} 

希望它有所帮助!