我试图编写一个脚本来登录网站并按下按钮,而无需打开浏览器或其他类似的东西。当我尝试设置我的selenium远程案例时,我一直收到一个错误,我不断收到TYPEERROR:'模块'对象不可调用。
# -*- coding: utf-8 -*-
import selenium
import unittest, time, re
class ClockInRemote(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", "http://signin/ess.aew/DEFAULT")
self.selenium.start()
def test_clock_in_remote(self):
sel = self.selenium
sel.open("/attendance/ess.aew/DEFAULT")
sel.type("id=AE_BadgeID_ID", "1234")
sel.type("id=AE_PIN_ID", "5678")
sel.click("css=input[type=\"submit\"]")
sel.wait_for_page_to_load("30000")
self.failUnless(sel.is_text_present("Punch IN or OUT"))
sel.click("id=ID_AE_PageActivity301q1")
sel.wait_for_page_to_load("30000")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
这给了我错误:
======================================================================
ERROR: test_clock_in_remote (__main__.ClockInRemote)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\PyScripts\ClockInRemote.py", line 8, in setUp
self.selenium = selenium("localhost", 4444, "*chrome", "http://signin/ess.aew/DEFAULT")
TypeError: 'module' object is not callable
----------------------------------------------------------------------
Ran 1 test in 0.011s
FAILED (errors=1)
任何帮助将不胜感激!
答案 0 :(得分:1)
当你这样做时
# -*- coding: utf-8 -*-
import selenium
import unittest, time, re
class ClockInRemote(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium(...) #<----------------
#[...]
知道名称为selenium
的{{3}}上的对象不是RHS,即它不是函数。实际上,它是callable。您无法调用 模块。你做不到selenium(...)
我猜你真正想要的是使用模块中定义的函数,两者都有相同的nam。用selenium(...)
代替selenium.selenium(...)
,我的意思是
class ClockInRemote(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium.selenium("localhost", 4444, "*chrome", "http://signin/ess.aew/DEFAULT")
#[...]
<小时/> 如果您收到以下错误
Traceback (most recent call last):
[...]
AttributeError: 'module' object has no attribute 'selenium'
你可能想要阅读module。试试这个
# -*- coding: utf-8 -*-
from selenium import selenium #<----------------
import unittest, time, re
class ClockInRemote(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium(...) #<----------------
#[...]
您使用的是Selenium的第3版。+
阅读this
Selenium 3.0的主要变化是我们删除了最初的Selenium Core实现,并将其替换为WebDriver支持的实现。这将影响Selenium RC API的所有用户。
这很可能是您的代码不再起作用的原因。你有两个解决方案。要么降级你的selenium版本(这很少是个好主意),要么你必须重新开发一个适用于这个新版本的新测试框架。