Есть два класса с одинаковыми именами. Как выбрать элемент в одном из них, используя css/xpath в Webdriver.IO?

Я использую Webdriver.io и хочу выбрать элемент внутри класса "text-fields-container" (это поле пароля). Оба класса имеют одинаковое имя. Как я могу выбрать второй класс, который имеет тип ="пароль".

<form>
 <div class="text-fields-container">
  <div>
   <input type="text" class="text-field" placeholder="Email" required stype="margin-bottom: 1.125rem;">
  </div>
  <div>
   <input type="password" class="text-field" placeholder="Password" required stype="margin-bottom: 5px;">
  </div>
 </div>
</form>

2 ответа

Чтобы выбрать второй класс, имеющий type="password", вы можете использовать любую из следующих стратегий локатора:

  • cssSelector:

    "input.text-field[type='password']"
    
  • cssSelector (гранулированный):

    "input.text-field[type='password'][placeholder='Password']"
    
  • xpath

    "//input[@class='text-field' and @type='password']"
    
  • xpath (гранулированный):

    "//input[@class='text-field' and @type='password' and @placeholder='Password']"
    

Попробуй это: driver.findElement(By.xpath("(//input[@class='text-field'])[2]"));

Другие вопросы по тегам