Как использовать driver.findElement, чтобы найти элемент ниже XML? - PullRequest
0 голосов
/ 24 января 2020

У меня есть XML, как показано ниже:

<input name="_jpfcpncuivr___ns535482039__j_id__ctru0:fragmentRegionStatic:0:it1" maxlength="6" style="text-transform:uppercase" type="text" class="af_inputText_content" id="_jpfcpncuivr___ns535482039__j_id__ctru0:fragmentRegionStatic:0:it1::content">

Я попытался driver.findElement по id, имени, className, cssSelector или xpath, но все не удалось и получил ошибку:

нет такого элемента: невозможно найти элемент:

1 Ответ

0 голосов
/ 24 января 2020

Требуемый элемент является динамическим c элементом, поэтому для определения местоположения и click() на элементе вам нужно вызвать WebDriverWait для element_to_be_clickable(), и вы можете использовать любой из следующих Стратегии локатора :

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[class$='inputText_content'][id*='fragmentRegionStatic']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@class, 'inputText_content') and contains(@id, 'fragmentRegionStatic')]"))).click();
    
...