селен вебдрайвер не может найти элемент

0

Я использую последнюю версию selenium webdriver.

Селен не может найти элемент (поле ввода). Это html-код:

<input id="findPath" class="pathCom" type="text" style="width: 100%; 
background-color: rgb(255, 255, 255);" name="$path$conFind" 
value="find" data-ctl="["TextInput"]">

Я использую такой код селена:

driver.findElement(By.xpath(".//input[@id='findPath']")).sendKeys("find");

Я также попробую найти идентификатор или css-локатор. Я подождал этого кода следующим образом:

WebDriverWait wait = new WebDriverWait(driver, 15);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(" driver.findElement(By.xpath(".//input[@id='findPath']")).sendKeys("find");")));

Я попытался использовать Selenium IDE, и он нашел этот элемент. Я понятия не имею, что это неправильно с webdriver. С кем сталкивалась такая проблема?

  • 0
    Попробуйте удалить начальный "." и использовать только "// input [@ id = 'findPath']".
  • 0
    Я попробовал это, спасибо
Теги:
selenium-webdriver
element

2 ответа

0

Причина, по которой ваш код не работает, объясняется очень простой ошибкой. Вы включили период в xpath

Ваш Code-

driver.findElement(By.xpath(".//input[@id='findPath']")).sendKeys("find");

Исправить Code-

driver.findElement(By.xpath("//input[@id='findPath']")).sendKeys("find");

Дайте мне знать, если он работает или нет!

0

Это не правильный способ использования sendkeys() в инструкции WebDriverWait,

вы можете попробовать это,

WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id='findPath']"))).sendKeys("find");

если вы не используете переменную wait, вы можете избежать этого следующим образом

new WebDriverWait(driver, 15).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@id='findPath']"))).sendKeys("find");

если вышеуказанный оператор работает, использование идентификатора определенно будет работать, а также улучшит производительность вашего кода.

new WebDriverWait(driver, 15).until(ExpectedConditions.presenceOfElementLocated(By.id("findPath"))).sendKeys("find");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню