Поле в моем приложении имеет 2 HTML-кода. Когда я использую ИЛИ в его Xpath, он не обнаруживает Элемент. Может кто-нибудь помочь мне сделать соответствующий xpath

Поле в моем приложении имеет два HTML-кода. Я хочу использовать OR в своем XPath, чтобы в любом HTML-коде команда могла выполняться. Но я не могу использовать ИЛИ в xpath. Это не обнаружение поля, когда я использую ИЛИ. Ниже приведены два HTML-кода. Может ли кто-нибудь сделать XPath, используя OR, чтобы он всегда работал? Первый HTML-код

 <input autocomplete="off" class="text" maxlength="30" tabindex="2" type="password" id="pswd-input" name="password" onfocus="   pswdLabel.style.display='none';pswdWrap.style.margin='0'    " onblur="if(this.value==''){pswdLabel.style.display='block';pswdWrap.style.margin='0 0 -14px'}else{pswdWrap.style.margin='0'} "> 

и это второй HTML-код

 <input type="password" name="password" maxlength="35;" autocomplete="off" size="37" value="">==$0

Любая помощь будет оценена...

2 ответа

Попробуйте использовать оператор Pipe (|)

driver.findElement(By.xpath("//input[@id='pswd-input'] | //input[@type='password']"));

Вы были довольно близко

driver.findElement(By.xpath("//input[@id='pswd-input' or @type='password']"));

но зачем вам ИЛИ, когда обе версии имеют type="password" и name="password"? Разве простой By.name не будет лучше? Это будет соответствовать обоим этим элементам:

driver.findElements(By.name("password"));
Другие вопросы по тегам