David_Wimbley
Вы не предоставили никакого кода, но я думаю, что проблема связана со следующим
* У вас есть два текстовых поля пароля без идентификаторов. Это прекрасно, но это делает его чрезвычайно трудным для цели
* У вас есть два текстовых поля пароля, 1 для входа в систему, 1 для регистрации. Вы указали в своих комментариях, что получаете ошибку на странице регистрации, говоря, что элемент скрыт. Это происходит потому, что он нацелен на первое текстовое поле под логином, а не на второе под регистрацией
Вы не указываете на каком языке вы используете selenium поэтому я приведу свои примеры на C#
Насколько я понимаю, у вас есть два решения
1) добавьте уникальные идентификаторы в два текстовых поля пароля, которые у вас есть. например, текстовый файл-логин-инвалидов на экране входа в систему и затем тхт-Регистрация-дуо для регистрации пароль модальное окно.
Таким образом, в selenium вы можете просто нацелиться на него, сделав driver.FindElement(By.Id("txt-login-pwd"));
или driver.FindElement(By.Id("txt-registration-pwd"));
.
2) Если у вас есть полный контроль над этим сайтом, Я не знаю, почему бы вам просто не добавить идентификаторы в текстовые поля пароля, но в том случае, если вы чувствуете себя против этого, это ваш другой вариант, который полностью больше работы, чем просто добавление идентификаторов в ваши два текстовых поля пароля.
Чтобы понять, что я имею в виду, вы должны найти что-то, что делает ваши текстовые поля пароля уникальными, и единственное, что я вижу, - это type="password". Вам нужно будет выяснить правильный синтаксис XPATH для этого.
Обратите внимание, что я печатаю это по памяти, так что он может компилироваться или не компилироваться, но код укажет вам правильное направление
var pwdTextBoxes = driver.FindElements(By.Xpath("//input[@type='password']"));
var count = pwdTextBoxes.Count();
В этот момент Вы увидите
cound
следует сказать 2. Это из-за ваших текстовых полей входа/регистрации.
Вам нужно будет знать, какой индекс списка/массива pwdTextBoxes предназначен для экрана регистрации и входа в систему соответственно. Оттуда вы сможете найти правильный.
Пример:
var loginPwdTxtBox = pwdTextBoxes[0];
это будет текстовое поле логин пароль и затем
var registrationPwdTxtBox = pwdTextBoxes[1];
указывает на текстовое поле регистрации, и вы можете предпринять над ним любые действия, которые вам понадобятся в данный момент.