File tree Expand file tree Collapse file tree 4 files changed +44
-0
lines changed Expand file tree Collapse file tree 4 files changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -49,3 +49,4 @@ class MobileCommand(object):
4949 SHAKE = 'shake'
5050 RESET = 'reset'
5151 HIDE_KEYBOARD = 'hideKeyboard'
52+ REPLACE_KEYS = 'replaceKeys'
Original file line number Diff line number Diff line change @@ -694,6 +694,8 @@ def _addCommands(self):
694694 ('POST' , '/session/$sessionId/ime/deactivate' )
695695 self .command_executor ._commands [Command .GET_ACTIVE_IME_ENGINE ] = \
696696 ('GET' , '/session/$sessionId/ime/active_engine' )
697+ self .command_executor ._commands [Command .REPLACE_KEYS ] = \
698+ ('POST' , '/session/$sessionId/appium/element/$elementId/replace_value' )
697699
698700
699701# monkeypatched method for WebElement
Original file line number Diff line number Diff line change 1212# See the License for the specific language governing permissions and
1313# limitations under the License.
1414
15+ from .mobilecommand import MobileCommand as Command
16+
1517from selenium .webdriver .common .by import By
1618from selenium .webdriver .remote .webelement import WebElement as SeleniumWebElement
1719
@@ -84,3 +86,20 @@ def find_elements_by_accessibility_id(self, id):
8486 driver.find_elements_by_accessibility_id()
8587 """
8688 return self .find_elements (by = By .ACCESSIBILITY_ID , value = id )
89+
90+ def set_text (self , keys = '' ):
91+ """Sends text to the element. Previous text is removed.
92+ Android only.
93+
94+ :Args:
95+ - keys - the text to be sent to the element.
96+
97+ :Usage:
98+ element.set_text('some text')
99+ """
100+ data = {
101+ 'elementId' : self ._id ,
102+ 'value' : [keys ]
103+ }
104+ self ._execute (Command .REPLACE_KEYS , data )
105+ return self
Original file line number Diff line number Diff line change @@ -173,6 +173,28 @@ def test_open_notifications(self):
173173 sleep (1 )
174174 self .driver .find_element_by_android_uiautomator ('new UiSelector().text(":-|")' )
175175
176+ def test_set_text (self ):
177+ self .driver .find_element_by_android_uiautomator ('new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("Views").instance(0));' ).click ()
178+ self .driver .find_element_by_name ('Controls' ).click ()
179+ self .driver .find_element_by_name ('1. Light Theme' ).click ()
180+
181+ el = self .driver .find_element_by_class_name ('android.widget.EditText' )
182+ el .send_keys ('original text' )
183+ el .set_text ('new text' )
184+
185+ self .assertEqual ('new text' , el .text )
186+
187+ def test_send_keys (self ):
188+ self .driver .find_element_by_android_uiautomator ('new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("Views").instance(0));' ).click ()
189+ self .driver .find_element_by_name ('Controls' ).click ()
190+ self .driver .find_element_by_name ('1. Light Theme' ).click ()
191+
192+ el = self .driver .find_element_by_class_name ('android.widget.EditText' )
193+ el .send_keys ('original text' )
194+ el .send_keys (' and new text' )
195+
196+ self .assertEqual ('original text and new text' , el .text )
197+
176198
177199if __name__ == "__main__" :
178200 suite = unittest .TestLoader ().loadTestsFromTestCase (AppiumTests )
You can’t perform that action at this time.
0 commit comments