7

要运行我的功能测试,我使用LiveServerTestCase.

我想调用不在 webdriver 中但在 selenium 对象中的set_speed(和其他方法,只是一个示例)。set_speed

http://selenium.googlecode.com/git/docs/api/py/selenium/selenium.selenium.html#module-selenium.selenium

我的子类LiveServerTestCase

from selenium import webdriver

class SeleniumLiveServerTestCase(LiveServerTestCase):

    @classmethod
    def setUpClass(cls):

        cls.driver = webdriver.Firefox()
        cls.driver.implicitly_wait(7)

        cls.driver.maximize_window()

        # how to call selenium.selenium.set_speed() from here? how to get the ref to the selenium object?

        super(SeleniumLiveServerTestCase, cls).setUpClass()

如何得到它?我认为我不能在 selenium 上调用构造函数。

4

1 回答 1

8

你没有。无法在 WebDriver 中设置速度,原因是您通常不需要这样做,并且“等待”现在在不同的级别完成。

在可以告诉 Selenium 之前,不要以正常速度运行它,以较慢的速度运行它以允许在页面加载时提供更多可用的东西,用于慢速加载页面或 AJAX 化页面。

现在,你完全消除了它。例子:

我有一个登录页面,我登录并登录后,我会看到一条“欢迎”消息。问题是欢迎消息不会立即显示并且有时间延迟(使用 jQuery)。

Pre WebDriver Code将指示 Selenium,运行此测试,但在这里放慢速度,以便我们可以等到欢迎消息出现。

较新的 WebDriver 代码将指示 Selenium,运行此测试,但是当我们登录时,使用显式等待等待最多 20 秒以显示欢迎消息

现在,如果您真的想访问“设置” Selenium 的速度,首先我建议您反对它,但解决方案是深入研究旧的、现已弃用的代码。

如果您已经大量使用 WebDriver,则可以使用WebDriverBackedSeleniumwhich 可以让您访问较旧的 Selenium 方法,同时保持 WebDriver 支持相同,因此您的大部分代码将保持不变。

https://groups.google.com/forum/#!topic/selenium-users/6E53jIIT0TE

第二种选择是深入研究旧的 Selenium 代码并使用它,这将改变你现有的很多代码(因为它是在“WebDriver”概念诞生之前)。

Selenium RC 和 WebDriverBackedSelenium 的代码都在这里,好奇:

https://code.google.com/p/selenium/source/browse/py/selenium/selenium.py

类似于以下内容:

from selenium import webdriver
from selenium import selenium
driver = webdriver.Firefox()
sel = selenium('localhost', 4444, '*webdriver', 'http://www.google.com')
sel.start(driver = driver)

You'd then get access to do this:

sel.setSpeed(5000)
于 2013-04-02T09:03:19.317 回答