2016-09-29 7 views
1

Я пытаюсь разработать автоматизированные тестовые скрипты для моего базового веб-приложения с калиткой.Автоматическое базовое веб-приложение фреймворка (Java)

Я использую Selenium 2.44 jars (плагин) и версию Firefox 23, а также с помощью дополнений Firefox Firebug для проверки веб-элементов и FirePath для получения xpath веб-элементов. Но проблема, с которой я сталкиваюсь, это то, что HTML-идентификаторы в моем веб-приложении являются динамическими, что означает каждый раз, когда они меняются, поэтому из-за того, что xpaths также меняются, а при поиске элемента я получаю «NoSuchElementException».

+1

Используйте селектор css. Пожалуйста, добавьте примеры примеров с значениями id, если вам нужна помощь с селектором. – lauda

ответ

3

Вы устанавливаете setComponentPathAttributeName() в своих настройках DebugSettings. Это заставит калитки отобразить ее путь в html. Путь должен измениться только при изменении иерархии компонентов.

public void init() { 
    super.init(); 

    getDebugSettings().setComponentPathAttributeName("wicketpath"); 
} 

Это заставит ваш HTML выглядеть следующим образом:

<form wicket:id="form" id="form1" wicketpath="form" method="post" action="./?0-3.IFormSubmitListener-form"> 
<div wicket:id="childField" wicketpath="form_childField"></div> 
</form> 
0

Это будет хорошо, если вы предоставляете фрагмент HTML-код страницы. На данный момент я могу просто предложить, что вы можете попробовать некоторые динамические функции Xpath, такие как contains(), follow() и т. Д. только, например: By.xpath ("// div [contains (text(), 'some text ') и содержит (@ class,' целое имя класса или некоторую часть имени класса, которая не изменяется, если его динамическая ')]/следующая :: * ") Или By.xpath (" // div [содержит (text(), 'some text') и содержит (@ class, 'целое имя класса или некоторую часть имени класса, которая не изменяется, если его динамическая')]/следующая :: div ")

вот так.

+0

Ya @priya благодарю вас за то, что сработало для меня ... Как новичок я не смог построить запрос xpath .. теперь его работа. ... Спасибо :) –

+0

@SnehaNigam Приятно это знать. Если бы это было полезно, вы можете также проголосовать за ответ. :) –