Avoid hiding software keyboard after appium perform action - selenium

I am using appium for automation testing of android application. And faced one problem:
after using new TouchAction(appiumDriver).Tap(webElement).Perform(); software keyboard always hiding. That happens only in automation mode. Manually keyboard always shown.
After some more investigation - looks like any perform action hides keyboard. I found out in internet a lot of information of how to hide software keyboard, but no information how to avoid that.
So please - do you have any ideas why OpenQA.Selenium.Interactions.Perform() action hide software keyboard and how to avoid it?

Related

Can Selenium handle Browser Notifications in the OS?

In the screenshot below, I make a VoIP call from an incognito window to an account logged in in a normal Chrome window that is minimised. Therefore I receive the Chrome notification in the bottom right corner.
I am tasked with creating a front-end test to validate the text in the notification window, that would work for Windows, Linux, and MacOS situations.
Now this may or may not be a silly question, but is there a way that selenium can handle tasks related with this notification, for example validating the text that appears in it? I can't find anything online and I understand it is not a DOM element, so I wonder if it is even possible. Could someone provide a basic start point for finding this non DOM notification element if it is possible / how to go about testing it in the front end if selenium is not the answer? TIA.
Notification example

Using code to automatically click a mouse

I'm working with a Bloomberg data sheet and I need to export this sheet into Excel. The only way of doing so is through clicking the "export" button in the Bloomberg window. Is there any way to use code to accomplish this click. I would appreciate help with 1) indicating which coding language should be used 2) the physical code syntax that can accomplish my goal
I've tried using VBA, but there is no automatic control of the mouse.
There are two alternatives you may use to simulate mouse and keyboard automation on Windows platform.
AutoHotKey
AutoIT
I would personally recommend using AutoHotKey. It has a very extensive documentation and a fairly active community.
Additionally, please try to use keyboard shortcuts (E.g Alt+F) instead of mouse movements. If you're using keyboard shortcuts, you'll be less prone to unwanted behaviour.
Extra: If you have a web application, you may use Selenium. It works neatly with Java or Python.

How to open a Keyboard on focus on text input?

In iOS simulator I can toggle software keyboard (⌘K) manually under Hardware main menu, and then tests pass. And I have to do it after Hardware Restart each time. But how can we make detox always open soft keyboard when an input field receives focus? Once soft keyboard is enabled it will stay enabled until next hardware restart, but tests will fail otherwise (soft keyboard won't show up on text input focus)
We've recently changed the way we do typing in Detox. Starting with Detox 13, it is no longer necessary to disconnect the hardware keyboard and show the software keyboard. Please upgrade your Detox and you should see this new behavior immediately.
Try MAYUS+CMD+K instead of CMD+K

IntelliJ IDEA back/forward with mouse

I want to move back/forward between editor tabs, using the two additional ("virtual") mouse buttons I have (RAZER DEATHADDER BLACK).
In Eclipse it's possible by default.
In IDEA I go to File->Settings->Keymap->Main menu->Window->Editor Tabs.
There I have Select Next Tab with the deault Alt+Right shortcut.
Then I open the Add Mouse Shortcut.
In that dialog I try to assign the back button of my mouse but without success. It doesn't react at all.
Anyway, googling a bit I've found this thread. I quote Alexey Gopachenko which seems to be an employee of IntelliJ:
As stated above - we can't support buttons if JDK on your platform
does not support them - and obviously it does not.
Anyway, that is totally wrong. My platform does support these keys - I actually work with them, on the same platform, on Eclipse and any other app, so it's IDEA who ignores them.
I'd appriciate a solution - how do I assign these back/forward mouse buttons?
UPDATE #1
I've found out that IDEA uses its own JAVA distribution (C:\Program Files (x86)\JetBrains\IntelliJ IDEA 11.1.4\jre on Windows 7), instead of the system's one - WHY?!
I'm almost SURE that is the reason I cannot use extended mouse buttons.
I've tried to trick IDEA by creating a custom Windows shortcut. Didn't work. I've also tried to create a SYMLINK in windows to my other, system-wide JRE distribution. Didn't work as well.
If someone come up with an idea on how to make it work with the system's JRE instead of its own - I think that'd solve the issue.
UPDATE #2
The above update #1 is not the issue.
I also had the same problem under OS X El Capitan. I just tried to add a new Keyboard-Shortcut and pressed than the Button 4 on the mouse and this worked.
Back/Forward mouse shortcuts work fine for me with Razer Mamba mouse, for example Back action is assigned to Button4 Click and I can confirm that it is recognized in this dialog when I click on the Click Pad area:
If it doesn't work with your mouse for some reason, you can try to workaround the problem using the Razer Configurator macro or key assignments:
Use the assigned key in IDEA keymap settings instead of the mouse shortcut.
Note that Eclipse is SWT based while IDEA is Swing based, so mouse event management is completely different. If JDK cannot recognize your device button clicks, it will not work in any Java Swing applications (NetBeans, JEdit, etc). In some cases running IDEA under a more recent JDK version may help (if support for your device was added in the newer JDK release).
I'm experiencing the exact same thing suddenly.
I realized my most recent change was to start using idea64.exe rather than idea.exe.
I switched back, and my mouse buttons are working fine again.
So, while this is not a complete answer, it seems as if it has something to do with the 64-bit version.
If the Razer driver's button mapping feature doesn't allow different mappings for a particular program, you can just assign the buttons to the mouse button number choices (mouse button 4 / mouse button 5) and then install a third party app that does support mappings for particular programs, e.g. https://superuser.com/questions/562972/how-to-map-bind-mouse-button-as-keyboard-button-in-windows-7
This question helped me although I have a Logitech Marathon Mouse M705, so I thought that I would share the solution in case other Logitech owners was in search for this.
I have a similar problem with a Logitech mouse and idea64.exe
Fortunately their SetPoint software allows for program specific settings.
This setting will have to be deleted and then reconfigured whenever you update IntelliJ and get a new idea64.exe :-)
I am experiencing a very similar problem and wanted to share my findings. I just bought a new Logitech M705 mouse. Within intelli-j the scroll right and scroll left buttons do not work. The forward and backward buttons also do not work.
I typically run intelli-j as administrator because I need higher privileges to run various tomcat services. When logging in as that user (rather than right clicking and selecting run as admin) all the buttons work! Also, when running as my normal user all the buttons work.
Also very curious is that I have an older generation Logitech mouse (same model, M705). This mouse has no problems with the scroll buttons and forward-back.
My solution for now is to use intelli-j as the user I am logged in as.
Check out this little tutorial from BetterTouchTool here. Basically for some mice (like Logitech ones) using the settings application they come with you can map default button actions to clicks and in doing so set a button number and use it as normal.
This works for my Logitech Performance MX mouse.
You can add mouse shortcuts, just click on an action in keymap and add mouse shortcut.
Alternatively Ctrl+Tab brings up switcher, which may be less clicks to navigate.

Controlling USB keyboard and mouse

We have a hardware device, with an LCD display. It supports an USB interface to connect keyboard and mose. Using these keyboard and mouse, we can navigate to varios menu items and edit entries.
We have couple of test cases written to verify that mouse click and keyboard input events are working when pressed respective key.
My task is to automate these test cases.
I donot have any control to the hardware device, as I can not access the o/s kernel or any application running there. There is one way to verify what is currently displayed on the UI. So I have to use that and verify whether the mouse/keyboard has performed the appropriate events.
As I have gone through couple of previous posts, it seems like that one of the way to achieve this is through virual HID device driver rather than actual keyboard and mosue. But I am not sure how to achieve it.
Please do help me for it. I am fine with any programming language.
I am more interested to simulate the mouse and keyboard events.
You probably don't need to write your own driver. AutoHotKey does pretty much anything you can think of, and the scripting language is quite easy to learn.
You can get it here:
http://www.autohotkey.com/
Since you're using linux, here's a similar project that will run on linux:
http://sikuli.org/