我使用Selenium IDE记录了一个动作,并使用File->导出测试用例作为Python 2(远程控制)格式。
我正在使用Selenium RC 2.3.0
然后我从命令提示符运行脚本,但它抛出异常。
导出的Python 2 RC代码是:
from selenium import selenium
import unittest, time, re
class login(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", "http://testServer1/")
self.selenium.start()
def test_login(self):
sel = self.selenium
sel.open("/WebAccess/login.html")
sel.type("id=LoginID", "Administrator")
sel.type("id=Password", "Administrator")
sel.click("id=login")
sel.wait_for_page_to_load("30000")
sel.click("link=Home") # This is where it fails.
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
在这一行sel.click("link=Home")
,它失败并带有异常
======================================================================
ERROR: test_login (__main__.login)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Documents and Settings\User\Desktop\login.py", line 16, in test_log
in
sel.click("link=Home")
File "C:\Python27\lib\selenium\selenium.py", line 290, in click
self.do_command("click", [locator,])
File "C:\Python27\lib\selenium\selenium.py", line 217, in do_command
raise Exception, data
Exception: ERROR: Element link=Home not found
----------------------------------------------------------------------
我甚至尝试将30000增加到60000,但仍然没有帮助。我可以看到页面已完全加载并等待一段时间,因为超时较高。但是,当执行此链接= Home时,它会失败。
HTML代码为:
<div class="links nopreview">
<span><a class="csiAction" href="/WebAccess/home.html#URL=centric://REFLECTION/INSTANCE/_CS_Data/null">Home</a></span>
<span> • </span>
<span><span><a class="csiAction" href="/WebAccess/home.html#URL=centric://SITEADMIN/_CS_Site">Setup</a>
</span><span> • </span>
</span><span><a title="Sign Out" class="csiAction csiActionLink">Sign Out</a></span>
</div>
使用IDE记录的操作是:
<tr>
<td>open</td>
<td>/WebAccess/login.html</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=LoginID</td>
<td>Administrator</td>
</tr>
<tr>
<td>type</td>
<td>id=Password</td>
<td>Administrator</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=login</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>link=Home</td>
<td></td>
</tr>
答案 0 :(得分:0)
尝试使用XPath,例如:
sel.click('//a[contains(text(),"Home")]')