Поле в моем приложении имеет 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"));