使用Selenium检索数据

时间:2009-02-28 22:55:28

标签: selenium information-retrieval

我想从靠近我的ScotiaBank分行获取营业时间。

基本网址为:http://maps.scotiabank.com/

我接着,

点击“Branches”radiobox。

点击“打开星期六”复选框。

在搜索框中输入“B3H 1M7”(我的邮政编码)。

单击“搜索”按钮。

点击弹出的第一个结果(Micmac购物中心)。

将营业时间存储为变量(称为businessHours)。

现在我被卡住了。

如何将我分配给变量的数据导出到文本文件或我以后可以查看的任何其他位置? 我不确定Selenium是否可以做到这一点,但如果不是,你能告诉我如何做到这一点吗?

下面是我当前的Selenium脚本的HTML代码。

<tr>
    <td>open</td>
    <td>/en/index.php</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>rb_branch</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>cb_saturday</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>input_address</td>
    <td>B3H 1M7</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>btn_search_address</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>result0</td>
    <td></td>
</tr>
<tr>
    <td>storeTextPresent</td>
    <td>Mon:    9:30 AM - 5:00 PM    Thu:    9:30 AM - 8:00 PM
<br />Tue:    9:30 AM - 5:00 PM    Fri:    9:30 AM - 5:00 PM
<br />Wed:    9:30 AM - 5:00 PM    Sat:    9:00 AM - 1:00 PM</td>
    <td>businessHours</td>
</tr>

3 个答案:

答案 0 :(得分:1)

这是一个想法 - 如果您无法写入文件或数据库,您当然可以编写快速的小型Web应用程序,并让selenium输入数据并单击“提交”!

答案 1 :(得分:1)

假设您只想使用Selenium Core和/或IDE并希望保留此信息,那么您可以尝试通过javascript 调用将其发送到某种类型的免费在线服务。 Selenium可以通过eval调用执行任意一段javascript(例如here)。

一个可能的建议是 twitter 帐户(或其他带有简单API的免费在线公共服务)。 Twitlet 生成的书签的修改可以向Twitter帐户发送您想要的任何信息。

另一种选择可能是 google文档或其他一些在线笔记服务。

如果你真的不需要Selenium来保存信息,但希望它在执行结束时聚合并显示,你可以将每组营业时间存储在一个变量中,然后追加,然后让你的最后一个动作是评估javascript,它会弹出一个包含结果的警告框。然后,您可以手动使用警报框中的数据。

只是一些想法。祝你好运。

编辑 -

这是一个存储值并检索它以及通过google主页上的eval和runscript方法执行任意javascript的示例:

<tr>
    <td>open</td>
    <td>/</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>q</td>
    <td>dog</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>btnG</td>
    <td></td>
</tr>
<tr>
    <td>storeValue</td>
    <td>q</td>
    <td>searchWord</td>
</tr>
<tr>
    <td>assertValue</td>
    <td>q</td>
    <td>${searchWord}</td>
</tr>
<tr>
    <td>assertEval</td>
    <td>alert(&quot;${searchWord}&quot;);</td>
    <td>null</td>
</tr>
<tr>
    <td>runScript</td>
    <td>alert(&quot;${searchWord}&quot;);</td>
    <td></td>
</tr>
<tr>
    <td>assertAlert</td>
    <td>dog</td>
    <td></td>
</tr>

答案 2 :(得分:0)

您可以从Selenium IDE导出测试以与Selenium RC一起使用。然后,使用您选择的编程语言,您可以写出文件或数据库。