Определить объекты в селене
Я новичок в селене.
В моем приложении есть несколько вкладок, например, "AAA", "ABC", "ADF"; Мне нужно автоматизировать нажатие на вкладку "Азбука".
Эти вкладки имеют идентификаторы, и они являются "tab1", "tab2", "tab3". Я могу сделать это легко с помощью идентификаторов. но я не хочу использовать это, потому что эти вкладки будут меняться время от времени. поэтому мне нужно использовать имя на вкладке, потому что оно уникально.
Пожалуйста, скажите мне, как это сделать.
Ниже мой тег:
<a id="tab2" class="current" onclick="expandcontent('sc2', this);" href="#"> ABC </a>
Спасибо
5 ответов
Если это так, вам, вероятно, придется вернуться к XPath и выполнить текстовый поиск, например:
//a[text()='ABC']
Тем не менее, я бы посоветовал вам работать с командой разработчиков, чтобы иметь согласованные идентификаторы Сопоставление с текстом хорошо, но когда вы начнете использовать старые браузеры, вы заметите, что это действительно сильно замедляет тесты.
Тем не менее, вы также можете использовать .LinkText
а также .PartialLinkText
селекторы в ваших языковых API - должна быть реализация этих селекторов в каждом API (C#, Ruby, Python и т. д.). Подвох здесь это будет для a
(якорь) только элементы. Однако, при условии, что это единственный тип элементов, с которым это нужно сделать, вы можете избежать использования этого вместо XPath.
Добро пожаловать на ТАК!
Как упоминал Арран, вам лучше всего искать имена вкладок, используя XPath
но вы также можете использовать FindBy
также. Примером этого может быть:
@FindBy(css=<the CSS value for the tab>) private WebElement pageTab2;
@FindBy(id="tab2") private WebElement pageTab2;
Я могу только согласиться с тем, что Арран также упомянул о ваших разработчиках, использующих также более подходящие соглашения об именах. Чем проще они делают вашу работу, тем больше вы можете сделать, чтобы сделать их жизнь проще.
Простейшим ответом будет Use..."link=ABC" или link=" ABC " (это пробелы в начале и в конце).
xpath=//a[contains(@class,"current") and contains(@text,"ABC")]
Самый простой подход - использовать X-пути для поиска ваших вкладок.
Когда вы начинаете, есть два полезных инструмента, которые помогут вам найти X-пути. Загрузите Mozilla Firefox и получите следующие два дополнения:
- Локатор элементов веб-драйвера - После загрузки вы можете щелкнуть правой кнопкой мыши веб-элемент и выбрать X путь.
- Selenium IDE- это устройство записи, которое даст вам X-пути или CSS каждого веб-элемента, с которым вы взаимодействуете.
Я бы порекомендовал начать с этих инструментов, чтобы помочь вам, так как вы только начинаете.
Что касается вашего вопроса: я бы порекомендовал использовать то, что сказал @Arran...
//a[text()='ABC']
'a' - будет искать по всей странице текст, который у вас есть в одинарных кавычках ''
Если вы щелкнете правой кнопкой мыши по элементу или вкладке и выберите "Проверить". Затем вы будете искать в конце страницы классы или элементы div, которые помогут вам идентифицировать каждый отдельный элемент.