Очистить текстовую область с помощью веб-драйвера Facebook - PullRequest
0 голосов
/ 26 сентября 2019

Я использую пакет PHP facebook / webdriver для проведения тестирования веб-автоматизации.

Мне не удалось очистить содержимое элемента <textarea>, и он исчерпанопций.

Дано:

  • элемент dom <textarea>content</textarea>
  • $element, который будет Facebook\WebDriver\WebDriverElement экземпляр

Я попытался позвонить RemoteWebElement::clear():

// phpdoc for this method states: 
// "If [is] TEXTAREA or text INPUT element, this will clear the value"

var_dump($element->getTagName()); // string(8) "textarea"
var_dump($element->getText());    // string(7) "content"

$element->clear(); 

var_dump($element->getText());    // string(7) "content"

Я попытался отправить ключи возврата:

var_dump($element->getTagName()); // string(8) "textarea"
var_dump($element->getText());    // string(7) "content"

for ($i = 0; $i < mb_strlen($element->getText()); $i++) {
    $element->sendKeys(WebDriverKeys::BACKSPACE);
}

var_dump($element->getText());    // string(7) "content"    

Я немного растерялся.Есть идеи?

1 Ответ

0 голосов
/ 26 сентября 2019

Чтобы запросить содержимое текстовой области, используйте $element->getAttribute('value') вместо $element->getText().

RemoteWebElement::getText() отображается только для получения текстового узла, который присутствовал во время загрузки страницы.По крайней мере, это мое лучшее предположение, основанное на наблюдаемом поведении.

RemoteWebElement::getAttribute('value') получает текущее содержание texarea.Я не догадывался, что это правильное решение, потому что элемент texarea не имеет атрибута значения в HTML.

...