Я пытаюсь получить общий пример кода для службы selenium2 Sauce OnDemand, работающей с IronPython, для какой-то тестовой работы, которую я выполняю, и я столкнулся с проблемой, которую не могу понять.
Во-первых, вот среда:
Windows 7 Home Premium, 64 бита.
IronPython 2.7.0.40 в .Net 4.0.30319.225
Мой путь:
>>> sys.path
['.', 'C:\\users\\me\\scripts\\python', 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE\\Extensions\\Microsoft\\IronStudio\\0.4\\Lib', 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE\\Extensions\\Microsoft\\IronStudio\\0.4\\DLLs', 'C:\\opt\\win\\ipy\\Lib', 'C:\\opt\\win\\ipy\\DLLs', 'C:\\opt\\win\\ipy']
Мне известно, что у IronPython есть проблемы с использованием сжатых яиц, поэтому я извлек следующие библиотеки в каталог \ Lib на sys.path:
селен (2.0b4dev)
rdflib (3.1.0)
Теперь пример кода от Sauce Labs:
import unittest
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class Selenium2OnSauce(unittest.TestCase):
def setUp(self):
desired_capabilities = dict(platform="WINDOWS",
browserName="firefox",
version="3.6",
name="Hello, Selenium 2!")
self.driver = webdriver.Remote(
desired_capabilities=desired_capabilities,
command_executor="http://me:my-site-access-key@ondemand.saucelabs.com:80/wd/hub")
def test_sauce(self):
self.driver.get('http://example.saucelabs.com')
assert "Sauce Labs" in self.driver.title
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
Вот ошибка, которую я получаю:
Traceback (most recent call last):
File "selenium2_test.py", line 3, in <module>
File "c:\opt\win\ipy\Lib\selenium\webdriver\__init__.py", line 18, in <module>
File "c:\opt\win\ipy\Lib\selenium\webdriver\firefox\webdriver.py", line 24, in <module>
File "c:\opt\win\ipy\Lib\selenium\webdriver\firefox\firefox_profile.py", line 23, in <module>
File "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\IronStudio\0.4\Lib\rdflib\__init__.py", line 65, in <module>
File "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\IronStudio\0.4\Lib\rdflib\namespace.py", line 282, in <module>
ImportError: No module named unicodedata
Я пробовал искать пакеты с уникальными данными (например, FePY), но ни один из них, похоже, не работает. Я пытался скопировать .pyd из моей установки Python27, но это тоже не сработало.
Это то, что еще не доступно в IronPython 2.7? Как вариант, есть ли библиотека или пространство имен, на которые я могу ссылаться для выполнения той же задачи?
Если нет, я думаю, мне придется обходиться без селена2, пока парни из Iron не получат уникальные данные для IP27. :(
Спасибо
Greg.