Selenium более одного baseUrl на тестовый класс - PullRequest
4 голосов
/ 10 мая 2010

Я пишу сценарии селена в сложном веб-приложении.

Чтобы использовать учетную запись пользователя, мне нужно сначала зарегистрироваться по одному URL, а затем утвердить учетную запись в консоли администратора по другому URL.

Проблема в том, что есть еще один baseURL для регистрации и консоли администратора, и мне это нужно в одном тесте.

Но когда я использую setBaseUrl в моих тестах, он игнорируется и используется старый baseURL. Я даже позвонил start () после этого, но без изменений ...

Есть хитрость, о которой я не знаю? Я довольно долго играю и отлаживаю эту проблему, но разрозненные (test <-> RCServer) тесты на селен не облегчают прохождение ...; -)

Ответы [ 2 ]

3 голосов
/ 12 мая 2010

Поскольку вы пометили этот selenium-rc, я предполагаю, что вы используете rc.

Просто используйте два отдельных экземпляра селена в тестовом клиенте. Нет причин, по которым у вас должен быть только один экземпляр селена в одном классе. На мой взгляд, это даже чище, поскольку вы говорите с двумя различными пользовательскими интерфейсами.

На стороне сервера вам все еще нужен только один. Сервер с радостью запустит два экземпляра браузера, если потребуется, используя два клиентских экземпляра.

Moritz

edit: просто чтобы добавить это, теперь экземпляр селена может быть создан в любое время с

Selenium s = new DefaultSelenium("localhost", 4444, "*chrome", 
            "http://your-target-url");

Предполагается, что сервер selenium находится на локальном порту 4444.

1 голос
/ 12 мая 2010

OK Selenium, похоже, не собирается для такого типа рабочего процесса.

Я разделил тестовый класс на три тестовых класса.

  1. Базовая регистрация с использованием первого baseURL
  2. Одобрение с использованием secondf baseURL
  3. Простые задачи, снова используя первый baseURL

Это не так чисто, как иметь вещи, содержащиеся в одном тестовом примере, потому что они связаны вместе с точки зрения бизнеса. Но, по крайней мере, это работает, и мне не нужно взламывать селен за это.

...