Как сделать тест Selenium для страницы с текстовым полем, имя которого постоянно меняется?

Я пытаюсь создать тест, который может вводить имя пользователя и пароль в форму входа на странице. Однако имя текстового поля меняется при каждой загрузке страницы, поэтому тест останавливается каждый раз, когда я его запускаю.

Как настроить Selenium IDE, чтобы он мог идентифицировать текстовое поле при обновлении?


person Zain    schedule 06.10.2010    source источник


Ответы (4)


//form1 (3) — первый элемент формы в HTML

Взято из здесь в качестве примера Здесь используется XPath. Теоретически вы можете использовать XPath, чтобы сосредоточиться на разборе структуры XHTML, однако это довольно хрупко, поэтому это не обязательно мудрый поступок, но он должен позаботиться о вашей проблеме.

person Aaron McIver    schedule 06.10.2010

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

Чтобы работать с этим, я бы рекомендовал использовать xpath, как люди указали выше, но сделать его более надежным, поскольку он каждый раз находит только этот элемент.

e.g.

//input[contains(@id,'thePartOfTheIdThatNeverChanges')]

or

//input[starts-with(@id,'thePartOfTheIdThatNeverChanges')]

or

//input[ends-with(@id,'thePartOfTheIdThatNeverChanges')]

person AutomatedTester    schedule 07.10.2010

Меняется ли расположение текстового поля или только имя?

Вы можете использовать селектор css или xpath, чтобы получить текстовое поле, если оно находится в том же месте.

person s_hewitt    schedule 06.10.2010

Я бы порекомендовал CSS, потому что: а. для удобства чтения б. для простоты доступа (и, в вашем случае, ремонтопригодности).

Я использую firebug для доступа/формулирования идентификатора CSS.

person rs79    schedule 11.10.2010