我試圖從Selenium IDE中將Selenium腳本導出到Python。我正在使用一些user-extension.js函數(它們在Selenium IDE中工作)。出口到Python後,生成的腳本是這樣的:當運行Python RC對Selenium服務器運行Python RC時,無法從user-extensions.js文件執行自定義Selenium聲明函數
from selenium import selenium
import unittest, time, re
class new_selenium_test(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", "http://localhost/")
self.selenium.start()
def test_selenium_assert_something(self):
sel = self.selenium
# sel.assert_something("abc=1", "x=126")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
注意,最有趣的線,在那裏我把我的用戶擴展代碼(函數「assert_something」,這在我的用戶的功能「assertSomething」映射extensions.js文件)已被註釋掉。當我激活該行並運行像這樣對硒服務器的腳本:
py.test new-selenium-test.py
我得到這樣的錯誤:
AttributeError: 'selenium' object has no attribute 'assert_something'
任何想法,爲什麼硒IDE評論了我的自定義來電,爲什麼不從Python執行它?
請注意,我已經啓動了Selenium服務器是這樣的:
java -jar selenium-server-standalone-2.0rc2.jar -userExtensions /path/user-extensions.js
感謝您的幫助!
我的「斷言」功能是否需要低級別的「do_command」調用,或其他? – nxhtltzw
我不知道你在斷言什麼,但是如果可以從這個範圍訪問必要的信息,那麼你可以寫一些類似'def assert_something(self,abc,x):return self.assert_equal(abc
agf
感謝您的info.Since我的assert_something函數也使用自定義的定位器,我假設我也必須讓Python瞭解這個自定義定位器。我如何實現這一目標?在Selenium IDE中,這可以直接使用,因爲我提供了這樣的Target:「myprefix = blabla」。我已經實現了查找的PageBot.prototype.locateElementByMyprefix函數。我如何從Python調用這個特定的定位器,然後結合我的assert_something函數?似乎無法在網上找到關於此的任何內容。 – nxhtltzw