Как вставить текст в элемент через Selenium и Java - PullRequest
0 голосов
/ 08 марта 2019

Может кто-нибудь подсказать мне, как найти элемент в селене?

Где то, что я пытался выбрать

WebElement  hello =  driver.findElement(By.className("input-box"));

Ошибка от Eclipse:

Can't find symbol 'GetGraphicsResetStatus'.
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: .input\-box

Еще раз спасибо.

оригинал html

<div data-v-7d31c51a="" data-v-126e1ccf="" class="input-box"><textarea data-v-7d31c51a="" placeholder="inputhere~" maxlength="500" autofocus="autofocus" class="textarea" style="height: 60px;"></textarea><div data-v-7d31c51a="" class="indicator" style="bottom: -30px; right: 100px;"><span data-v-7d31c51a="" class="">0</span>/<span data-v-7d31c51a="">500</span></div></div>

Ошибка при попытке WebElement hello = driver.findElement (By.className ("textarea"));

Не удается найти символ 'GetGraphicsResetStatus'. Исключение в потоке "main" org.openqa.selenium.NoSuchElementException: невозможно найти элемент: .textarea Для документации по этой ошибке, пожалуйста, посетите: http://seleniumhq.org/exceptions/no_such_element.html Информация о сборке: версия: '3.6.0', редакция: '6fbf3ec767', время: '2017-09-27T16: 15: 26.402Z'

Добавление файла JAR и моих кодов

введите описание изображения здесь

Ответы [ 3 ]

1 голос
/ 08 марта 2019

Элемент является динамическим элементом, поэтому для отправки последовательности символов на требуемый элемент необходимо настроить WebDriverWait , чтобы элемент был кликабельным иВы можете использовать любое из следующих решений:

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.input-box>textarea.textarea[placeholder^='inputhere']"))).sendKeys("JohnMax");
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='input-box']/textarea[@class='textarea' and starts-with(@placeholder, 'inputhere')]"))).sendKeys("JohnMax");
    
1 голос
/ 08 марта 2019

Попробуйте xpath:

 WebElement hello =  driver.findElement(By.xpath("//div[@placeholder='inputhere~']"));
0 голосов
/ 08 марта 2019

Вы считаете неправильное имя класса для inputbox. Ваш класс должен быть.

WebElement  hello =  driver.findElement(By.className("textarea"));
...