2

Я могу указать размер элемента с помощью метода getSize, но не могу понять, как изменить height (например) этого элемента.Размер сменщика вектора изменения

Просто, чтобы предоставить некоторый контекст, я хочу проверить, может ли конечный пользователь изменить размер элемента textarea. Должен ли я просто установить высоту или создать способ имитации взаимодействия пользователя с элементом.

Заранее спасибо

Решение
Моя реализация выглядит следующим образом:

myElement.getSize().then(function(result){ 
    browser.driver.actions() 
     .mouseMove(inputElement, {x: result.width-1, y: result.height-1}) 
     .mouseDown() 
     .mouseMove(inputElement, {y: newHeight }) 
     .mouseUp() 
     .perform() 
}); 

Это позволяет мне имитировать взаимодействие с пользователем изменение размера элемента текстового поля.

ответ

2

Вы можете использовать browser.executeScript() изменить высоту элемента в Protractor.Something, как показано ниже, должны работать для вас

browser.executeScript('$("div").height(500)').then(function(){ 
     $("div").getSize().then(function(eleSize){ 
      console.log('element size: '+eleSize); 
      expect(eleSize.height).toEqual(500); 
     }); 
    }) 

Вы можете профессионализации это пропускание элемента в качестве аргумента browser.executeScript()

И если вы действительно хотите смоделировать действие конечного пользователя, щелкнув &, перетаскивая границы текстового поля, да его возможно. Ключом для создания action sequence и browser.action() может быть использован

В случае, если вам интересно, я пробовал что-то подобное - drawing a signature using protractor

+0

Я не думаю, что это сработает, после 'browser.executeScript' вы теперь находитесь в контексте браузера, поэтому' getSize() 'не будет функция, доступная вам. Также ваш 'console.log' будет зарегистрирован в браузере, а не на вашем терминале. – Gunderson

+0

@Gunderson Извините, что я не понял вас, «Браузер» находится в глобальной области действия, и getSize() действительно доступен. Я просто проверил его, и «console.log» печатает на консоль, а не на 'browser-console'. Мы просто обрабатываем обещание 'browser.executeScript' – AdityaReddy

+0

@AdityaReddy благодарим за помощь. Я обновил вопрос с помощью решения. – taguenizy

Смежные вопросы