Selenium模块调用

2024-09-28 19:25:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个脚本,登录到一个网站并按一个按钮,而不打开浏览器或类似的。当我试图设置我的selenium远程案例时,我一直收到一个错误消息:“module”对象不可调用。在

    # -*- 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()

这给了我一个错误:

^{pr2}$

任何帮助都将不胜感激!在


Tags: importselfiddefaultdeftypeselenium错误
1条回答
网友
1楼 · 发布于 2024-09-28 19:25:39

当你这么做的时候

# -*- coding: utf-8 -*-
import selenium
import unittest, time, re

class ClockInRemote(unittest.TestCase):
    def setUp(self):
        self.verificationErrors = []
        self.selenium = selenium(...) #<        
        #[...]

要知道RHS上名为selenium的对象不是callable,也就是说,它不是一个函数。实际上,它是一个module。您不能调用模块。您不能selenium(...)

我想您实际想要的是使用模块中定义的函数,并且两者都有相同的nam。简单地用selenium(...)替换selenium.selenium(...),我的意思是

^{pr2}$


如果出现以下错误
Traceback (most recent call last):
  [...]
AttributeError: 'module' object has no attribute 'selenium'

你可能想读this。试试这个

# -*- 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

当它读到here

The major change in Selenium 3.0 is we’re removing the original Selenium Core implementation and replacing it with one backed by WebDriver. This will affect all users of the Selenium RC APIs.

这很可能是您的代码不再工作的原因。你有两个解决方案。要么降低selenium的版本(这很少是一个好主意),要么必须重新开发一个新的测试框架来与这个新版本一起工作。在

相关问题 更多 >