2017-02-16 3 views
1

Я пытаюсь изучить вход в систему с помощью xpath с этим сайтом https://www.componence.com/login, просто записав и воспроизведя. Затем я попытался получить его через firepath и chrome browser default xpath copier.Как обрабатывать динамический идентификатор в селене IDE

Но похоже, что каждый раз при отправке кнопки xpath меняются при загрузке страницы. Я получил следующий xpath для кнопки «Вход в систему».

.//*[@id='yui_patched_v3_11_0_1_1487250469606_202'] 
.//*[@id='yui_patched_v3_11_0_1_1487251369606_202'] 
.//*[@id='yui_patched_v3_11_0_1_1487250229606_202'] 
.//*[@id='yui_patched_v3_11_0_1_1487254369606_202'] 

Можете ли вы помочь мне получить правильный XPath знаковой кнопки, которые я могу использовать с селеном IDE IN?

ответ

2

Вы можете использовать ниже XPath для обработки динамического id:

//button[starts-with(@id, "yui_patched_v3_11_0_1_")] 

Но лучшим решением является использование текстового содержимого элемента:

//button[normalize-space(text())="Sign In"] 
1

Я не согласен со вторым заявлением @ Andersson, так как он будет работать для .com, но не для .nl.

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

Также, как я вижу, id кажется, не имеет значимого значения, в этом случае попробуйте идентифицировать уникальную родительскую секцию и перейти оттуда.

Одним из вариантов CSS/XPath будет:

CSS: form.sign-in-form button

XPath: //form[contains(@class, 'sign-in-form')]//button

+1

И я не согласен с вами :) Как QA я думаю, что если кто-то хочет, чтобы закончить авторизацию Английская версия веб-сайта с 'driver.get (« https://www.componence.com »)' он, конечно, не хочет получать голландскую версию страницы входа – Andersson

+1

Да, вы правы, также используя текст, который он может также проверьте, хорошо ли перевод, это может быть двойная проверка :) – lauda

Смежные вопросы