@headspin_io_twitter
Don't know why you're asking :wink: but the 2 sites I use a lot are:
Hi all, anyone knows which is the best approach to verify if the input field does not accept special characters, e.g: "$#@%%^&*(" , either on Android or iOS?
For example, I have an input field that only accepts numeric characters, any other special characters besides allowed characters are not sent to the field no matter what users pressing on the keyboard itself.
I try to use 'Send Keys' function and then assert the input field's text equals blank (input values are not filled), but Appium can still send the restricted characters successfully.
@zarashima
To be honest:
<input type="number" >
then you shouldn't even test it because this is default behavior, if it's broken, the it's broken for the whole world. There are also some functions for that for native codeI'd always advice to avoid these type of tests through the UI, especially on mobile because they are 3-6 times slower than on desktop browsers
Just wanted to know, anyone using Appium version 1.14.0 with Android 8.0 or later?
Actually, I'm having an issue, where the driver is unable to find out the third party web view window elements. But I can see and access web view elements on appium inspector.
It was working fine on Android 6.0. And it started failing from Android 7.0, 8.0 or later!
if anyone has any solutions, please let me know.
Third-party web view window means, In our application, if a user clicks on the HELP button we show web view window(Not the browser). It's an in-app web view window.
Appium version: 1.14.0
Android - 8.0
Chrome Driver: 2.44
"mobile: scroll", {"element": element, "toVisible": True}
)
An example:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
views/profile.py:58: in sign_out_button
self.move(ProfileReference.sign_out_button)
views/base.py:23: in move
actions.perform()
../../miniconda2/envs/mobile/lib/python3.7/site-packages/selenium/webdriver/common/action_chains.py:80: in perform
self.w3c_actions.perform()
../../miniconda2/envs/mobile/lib/python3.7/site-packages/selenium/webdriver/common/actions/action_builder.py:76: in perform
self.driver.execute(Command.W3C_ACTIONS, enc)
../../miniconda2/envs/mobile/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
self.error_handler.check_response(response)
../../miniconda2/envs/mobile/lib/python3.7/site-packages/appium/webdriver/errorhandler.py:29: in check_response
raise wde
../../miniconda2/envs/mobile/lib/python3.7/site-packages/appium/webdriver/errorhandler.py:24: in check_response
super(MobileErrorHandler, self).check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <appium.webdriver.errorhandler.MobileErrorHandler object at 0x113d4bc18>
response = {'status': 500, 'value': '{"value":{"error":"unknown error","message":"An unknown server-side error occurred while pro...m.app/Contents/Resources/app/node_modules/appium/node_modules/appium-base-driver/lib/jsonwp-proxy/proxy.js:235:19)"}}'}
The code that went with it
element = self.driver.find_element_by_accessibility_id(locator[1])
actions = ActionChains(self.driver)
actions.move_to_element(element)
actions.click(element)
actions.perform()
Then the output device's delegate (here, self) has to implement the callback
Net::ReadTimeout:
Net::ReadTimeout with #<TCPSocket:(closed)>