Selenium WebDriver с элементами управления ASP.NET - PullRequest
0 голосов
/ 21 февраля 2012

Я пытаюсь найти элементы на веб-странице, созданной с использованием ASP.NET.Проблема в том, что ASP.NET до версии 4.0 генерирует несколько длинных имен для элементов управления, поэтому для поиска простого поля ввода «Имя пользователя» мне нужно использовать его полное имя:

var elementName = "LoginControl1_uxLoginControl_UserName";
var username = Browser.TryFind(By.Name(elementName));

, и, похоже, оно работает, но я ищу что-то попроще.Можно ли сделать то же самое, используя частичные имена элементов или частичные идентификаторы?например,

var username = Browser.TryFind(By.CssSelector("UserName"));

, это должно вернуть все элементы, которые имеют "UserName" в своих именах / идентификаторах (или даже первый элемент).

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Попробуйте использовать один из селекторов соответствия атрибутов подстроки :

var username = Browser.TryFind(By.CssSelector("[id$='UserName']"));

, который соответствует любому элементу с идентификатором, заканчивающимся UserName.

2 голосов
/ 21 февраля 2012

Вы можете сделать это, используя xpath,

var username = Browser.TryFind(By.Xpath("//*[contains( @name , 'UserName')] "));

Другой вариант - по возможности использовать css-селектор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...