Selenium щелкает по определенному элементу в группе равных элементов, используя nodejs - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь щелкнуть по элементу, который имеет те же атрибуты, что и другие элементы. Как я могу выбрать, какой элемент я щелкну после обнаружения и проверим, включен ли он?

<html>
    <body>
        Input 1 <input type="tel" class="myInput">
        <br><br>
        Input 2 <input type="tel" class="myInput">
        <br><br>
        Input 3 <input type="tel" class="myInput">
        <br><br>
        Input 4 <input type="tel" class="myInput">
    </body>
</html>
require('chromedriver');
require('log-timestamp');
const webdriver = require('selenium-webdriver');
const chrome = require("selenium-webdriver/chrome");

var until = webdriver.until;
var By = webdriver.By;

async function myMain(){

  let driver = new webdriver.Builder().forBrowser('chrome').build();
  await driver.get('file:///C:/Users/myUser/Desktop/mypage.html');

  await driver.wait(until.elementLocated(By.className("myInput")),15000);
  le t btn = driver.findElement(By.className("myInput"));    
  await driver.wait(until.elementIsEnabled(btn ,15000));
  await driver.findElement(By.className("myInput")).click();
};
myMain();

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Если вы хотите выбрать 4-й вход, вы можете использовать xpath с индексом 4

//input[@class='myInput'][4]

0 голосов
/ 04 октября 2019

Если у вас более одного элемента в DOM, итерируйте массив elementResult, основываясь на позиции

var elementResult = new Array();
elementResult=[];
elementResult = driverdriver.findElements(By.className("myInput"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...