【问题标题】:accessing different servers (urls) using selenium ide使用 selenium ide 访问不同的服务器(url)
【发布时间】:2015-12-28 11:59:37
【问题描述】:

我需要点击服务器 x 的 url,单击提交按钮并跳转到服务器 y 的相同 url 并单击相同的提交按钮,这必须重复 26 次,因为我必须在 26 日更改服务器。

这一切都是我必须要做的 selenium ide。我设法为 1 台服务器执行此操作,但只是想知道是否有一种聪明的方法可以为 26 台服务器执行此操作,而不是记录 26 次。

我正在使用 selenium 2.9.0 IDE 插件和 firefox 浏览器

 <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head profile="http://selenium-ide.openqa.org/profiles/test-case">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="selenium.base" href="http://server-x:9173/" />
    <title>New Test</title>
    </head>
    <body>
    <table cellpadding="1" cellspacing="1" border="1">
    <thead>
    <tr><td rowspan="1" colspan="3">New Test</td></tr>
    </thead><tbody>
    <tr>
    <td>open</td>
    <td>website/delivery/DeliveryMethodsRepository/</td>
    <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>link=DeliveryMethodsRepository/</td>
        <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>link=invalidateCaches</td>
        <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>name=submit</td>
        <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>link=DeliveryMethodsRepository/</td>
        <td></td>
    </tr>
    </tbody></table>
    <table cellpadding="1" cellspacing="1" border="1">
    <thead>
    <tr><td rowspan="1" colspan="3">New Test</td></tr>
    </thead><tbody>
    <tr>
        <td>open</td>
        <td>inventory/InventoryRepository/</td>
        <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>link=InventoryRepository/</td>
        <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>link=invalidateCaches</td>
        <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>name=submit</td>
        <td></td>
    </tr>
    <tr>
        <td>clickAndWait</td>
        <td>link=InventoryRepository/</td>
        <td></td>
    </tr>
    </tbody></table>
    </body>
    </html>

【问题讨论】:

    标签: url firefox selenium-ide


    【解决方案1】:

    您可以将基本网址保留为“http://”。然后,您需要对所有服务器 url 使用 readCSV,并使用 while 循环来重复服务器数量。

    请参考 [http://bashamy.blogspot.co.uk/2016/01/selenium-ide-to-use-while-loop-and-read.html] 了解更多信息。

    编辑网址:http://bashamy.blogspot.com/2016/01/selenium-ide-to-use-while-loop-and-read.html

    例如:下面的 html 代码从我的 CSV 输入文件中打开 5 个不同的 url。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head profile="http://selenium-ide.openqa.org/profiles/test-case">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="selenium.base" href="http://onlineconversion.com/" />
    <title>06 ReadCsv_n_Loop</title>
    </head>
    <body>
    <table cellpadding="1" cellspacing="1" border="1">
    <thead>
    <tr><td rowspan="1" colspan="3">06 ReadCsv_n_Loop</td></tr>
    </thead><tbody>
    <tr>
        <td>readCSV</td>
        <td>file://C:\Users\extayx\Documents\Selenium IDE\07Input.csv</td>
        <td></td>
    </tr>
    <tr>
        <td>store</td>
        <td>1</td>
        <td>row</td>
    </tr>
    <tr>
        <td>store</td>
        <td>1</td>
        <td>col</td>
    </tr>
    <tr>
        <td>store</td>
        <td>6</td>
        <td>z</td>
    </tr>
    <tr>
        <td>while</td>
        <td>${row}&lt;${z}</td>
        <td></td>
    </tr>
    <tr>
        <td>storeCellValue</td>
        <td>ip</td>
        <td>${row},${col}</td>
    </tr>
    <tr>
        <td>echo</td>
        <td>${ip}</td>
        <td></td>
    </tr>
    <tr>
        <td>open</td>
        <td>${ip}</td>
        <td>${ip}</td>
    </tr>
    <tr>
        <td>storeEval</td>
        <td>storedVars['row'] = ${row}+1</td>
        <td>x</td>
    </tr>
    <tr>
        <td>endWhile</td>
        <td></td>
        <td></td>
    </tr>
    </tbody></table>
    </body>
    </html>
    

    我的输入 CSV 文件包含以下信息。

    www.google.co.in
    www.google.com
    www.google.co.uk
    www.news.google.co.in
    www.seleniumhq.org
    

    【讨论】:

    • 非常感谢您的回答。我明天试试这个,然后告诉你。您分享的链接已失效。您能否检查并粘贴正确的链接?再次感谢。
    • bashamy.blogspot.com/2016/01/… 请检查网址。你需要在你的 Selenium IDE 中添加用户扩展 js
    【解决方案2】:

    您的问题非常令人困惑,所以我可能误解了它。 在不太可能的情况下,我做对了,您尝试为不同的网站执行相同的任务 26 次。听起来像是循环可以做的事情。 这是一个示例 Python 代码:

    urls = ['http://foo.bar', 'http://otherfoo.otherbar',...]
    for url in urls:
        driver.get(url)
        #your selenium code here
    

    【讨论】:

    • 不确定我的问题的哪一部分让您感到困惑。我熟悉java,我可以用java编写这个逻辑。问题是我无法将修改后的 java 代码导入 selenium IDE。浏览了一会儿我才知道,无法将 .java 或 .py 文件移植到 selenium IDE 中,它只接受 .html 文件。如果您对 html 文件进行了相同的修改,请转给我。谢谢你的建议。
    • Whelp 显然我已经失去了阅读能力。我完全错过了 IDE 部分,并认为您提到了框架,对不起!无论如何,您可能已经发现了,但这似乎很有希望:testingdiaries.com/selenium-ide-loop
    【解决方案3】:

    这是我必须自己做的事情,可以使用一组名为 selite 的插件或 selblocks(尽管 selite 已经包含该插件的一个版本)

    使用这些插件,您可以将 URL 列表保存为外部 json 文件,然后循环测试用例,您只需将调用文件的“Forjson”命令放在您想要循环的阶段开始,以及您希望它结束​​的“Endforjson”。所有文档都在链接中。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-31
      • 2010-11-28
      • 1970-01-01
      • 2013-03-08
      • 2013-04-19
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多