使用selenium ide访问不同的服务器(URL)

时间:2015-12-28 11:59:37

标签: url firefox selenium-ide

我要求点击服务器x的网址,点击提交按钮并跳转到服务器y的同一网址,然后点击相同的提交按钮,这样我就必须重复26次改变26台服务器。

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

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

 <?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>

3 个答案:

答案 0 :(得分:1)

你的问题很混乱,所以我可能误解了它。 在不太可能的情况下,我做对了,你试图为不同的网站做同样的任务26次。听起来像循环可以做的事情。 这是一个示例Python代码:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分: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个不同的网址。

<?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