2017-01-05 4 views
1

У меня есть страница входа, в которой изменяется идентификатор кнопки входа. Идентификатор может быть одним из двух.Robot Framework - Как передать идентификатор кнопки, который часто меняется?

id = signin 
or 
id = signin_cache1 

Идентификатор назначается в Java на основе функции math.random(). Утверждение,

num = (int)(math.random() * 100) 
if num < 50 id=signin 
if num > 50 id=signin_cache1 

Моя основе робот с selenium2library сценарием не удается, если идентификатор отличается от той, которую я закодированной в скрипте. Есть ли способ в структуре робота ссылаться на оба идентификатора, чтобы мой сценарий никогда не терпел неудачу?

+0

Потенциал Дубликат: HTTP: // stackoverflow.com/questions/41159680/how-to-handle-dynamic-elements-using-robot-framework/41160640#41160640 Вам в основном нужно использовать Xpaths :) – Goralight

+1

вы пробовали просто искать его, и если он не сработает, искать другого? Другое решение - сказать разработчикам, что это глупая идея (если альтернативный идентификатор не требуется для какой-либо другой цели, которую вы не можете контролировать). –

ответ

2

Как насчет css=#signin, #signin_cache1 или css=[id^="signin"]?

Первый - это селектор, который соответствует всем элементам с идентификатором «signin» и всеми элементами с идентификатором «signin_cache1». Второй селектор просматривает все элементы с атрибутом id, который начинается с «signin».

(. Я только гадать, так как я знаю только Selenium 2/WebDriver и не работали с Robot Framework пока документация для него, кажется, очень фрагментирован.)

+0

Спасибо! Мне удалось запустить скрипт n раз с первым кодом css в скрипте! – Srpk