Вызов пользовательской функции assert из Selenium RC (Python) с пользовательской функцией локатора в user-extensions.js - PullRequest
0 голосов
/ 24 июля 2011

Я написал пользовательскую функцию assert в user-extensions.js, которая использует пользовательскую функцию локатора - также реализованную в user-extensions.js - для поиска определенного элемента на странице.

Не вдаваясь в детали;Мне нужна пользовательская функция локатора, потому что я пытаюсь найти элемент в другом пространстве имен на странице - что-то вроде того, что Selenium не поддерживает изначально.

При вызове пользовательской функции assert из Selenium IDE онаиспользует пользовательскую функцию локатора «неявно» для поиска искомого элемента, выполняет утверждение и все работает нормально.С «неявным» я имею в виду, что я вызываю функцию assert с Target «abc = ...», и Selenium IDE знает, что следует использовать функцию локатора locateElementByAbc для поиска конкретного элемента.

Однако при вызовета же самая пользовательская функция подтверждения из Selenium RC (Python), использующая функцию do_command в Python, пользовательская функция локатора, по-видимому, не вызывается неявно, и элемент не найден.

Как мне сделать мой Selenium RC Pythonскрипт для использования функции locateElementByAbc?Обратите внимание, что user-extensions.js загружается при запуске сервера Selenium, поэтому эта часть работает.Функцию assert также можно вызывать с помощью функции Selenium do_command из Python.

Спасибо за вашу помощь, она очень ценится!

1 Ответ

0 голосов
/ 25 июля 2011

Скорее всего, проблема в том, что ваша пользовательская функция локатора (LocateElementByMyprefix()) не зарегистрирована.Selenium RC выполняет настройку user-extension.js немного иначе, чем Selenium IDE, и время может помешать.Попробуйте вызвать selenium.browserbot._registerAllLocatorFunctions() после определения вашей функции.

...