我正试图搞砸Python和Selenium RC,并且在解析下面的示例Selenium Python脚本时遇到了一些困难。除了一个之外,我已经解决了以下所有代码的错误:
from selenium import selenium
import unittest
class SignUpTask(unittest.TestCase):
""" The following needs to have the issues corrected to make
it run. When the run is completed the answer for question
2 will be shown"""
def setUp(self):
self.selenium = selenium("localhost", 4444, "*firefox",
"http://www.google.com/")
self.selenium.start()
def test_that_will_print_out_a_url_as_answer_for_task(sel):
self.selenium.open("/")
self.selenium.click("link=Web QA")
self.selenium.wait_for_page_to_load("30000")
self.selenium.click("link=Get Involved")
self.selenium.wait_for_page_to_load("30000")
url = self.selenium.get_attribute("//ol/li[5]/a@href")
print """The Url below needs to be entered as the answer
for Question 2) in the signup task"""
print "URL is: %s" % url
def tearDown(self):
self.selenium.stop()
if __name__ == "__main__":
unittest.main()
通过Selenium RC运行上述脚本后,出现以下错误:
错误:test_that_will_print_out_a_url_as_answer_for_task(主要 .SignUpTask) Traceback(最近一次调用最后一次): 在test_that_will_print_out_a_url_as_answer_for_task中输入文件“/Users/eanderson/Desktop/TestFiles/Selenium1.py”,第16行 self.selenium.open( “/”) NameError:未定义全局名称“self”
在24.577s中进行1次测试
失败(错误= 1)
有没有人明白为什么我会得到
第16行的NameError:未定义全局名称“self”
错误可以帮助我缓解此错误,以便我的脚本可以无误地解析?
答案 0 :(得分:3)
def test_that_will_print_out_a_url_as_answer_for_task(
的 SEL 强> ):
应该是self
。
答案 1 :(得分:1)
调试这样的问题的第一步是假设错误消息说实话。从字面上看它。它说“自我没有定义”。所以问问自己,为什么不定义?。实际上只有几个原因:要么你真的没有定义它,要么你认为你定义它但没有(这意味着一个错字,或者你在错误中定义它)范围)
那么,“自我”定义在哪里?在python的情况下,它作为参数传入。所以,看一下该函数的参数列表。当您这样做时,您会注意到您将self
拼写为sel
。
答案 2 :(得分:0)
可能是“sel”缺少f?
def test_that_will_print_out_a_url_as_answer_for_task(sel):