机器人框架动态地从网站源代码获取文件名

时间:2016-01-12 03:39:27

标签: html selenium automation backup robotframework

所以,我正在尝试自动从服务器获取备份。 使用RIDE 1.5 - 机器人框架: 登录服务器站点,生成新备份,下载文件。

现在要下载文件,需要单击链接,系统会生成备份文件名,每次使用新备份时都会更改。我无法改变命名方案。

创建备份后,页面上会显示备份文件名。

是否有某种方法可以动态地在变量中选择和存储该名称,然后可以使用该方法下载文件。

创建新备份文件时,页面上会显示名称:docs - 2016年1月12日612.bak

更新
所以我明白了:

$ {backup 2}获取文字xpath = // span [@id =' OuterMainContent_MainContent_ResponseMessage1_lblMessage']

$ {backup 1} =从左边获取$ {backup 2}"创建

$ {备份文件名} =从正确的$ {备份1}文件中获取"

现在:有没有办法让机器人点击浏览器的下载确定。

<link href="styles.css" rel="stylesheet" type="text/css" />
<div id="OuterMainContent_MainContent_ResponseMessage1_pResponse" class="responseTable">


    <table id="OuterMainContent_MainContent_ResponseMessage1_responseTable" width="100%" border="0" cellpadding="2">
        <tr>
            <td valign="top" width="150">
            <span id="OuterMainContent_MainContent_ResponseMessage1_lblTitle" class="responseTitle">Completed:</span>
            </td>
            <td> <div id="OuterMainContent_MainContent_ResponseMessage1_pContainer">

            <span id="OuterMainContent_MainContent_ResponseMessage1_lblMessage" class="responseMessage">Backup file "docs - 12 Jan 2016 612.bak" created successfully for Database docs<BR>It has been copied to the App_data folder of the docs Domain.</span>
            <input type="hidden" name="ctl00$ctl00$OuterMainContent$MainContent$ResponseMessage1$hAction" id="OuterMainContent_MainContent_ResponseMessage1_hAction" />
            <input type="hidden" name="ctl00$ctl00$OuterMainContent$MainContent$ResponseMessage1$hParameter" id="OuterMainContent_MainContent_ResponseMessage1_hParameter" />



            </div>
            </td>
        </tr>
    </table>



</div>

1 个答案:

答案 0 :(得分:0)

在下载方面,Selenium不是很可靠,因为它的目的是测试网页而不是文件下载。

您应该通过在下载链接/按钮WebElement上调用GetAttribute(&#34; href&#34;)来获取URL,然后在可能的情况下处理Selenium以外的下载。