Module FAQs

Client Module

A sequence of key combinations using IKeyboardSequence is not working. What's happening?

Make sure that the apply() method has been called at the end of the sequence. Otherwise, the sequence will be created but won't be executed.

There are key combinations that do not work. How can this be solved?

In a robotic process, the keyboard behaves in the same way that it does when a person uses it. Therefore if the numerical or uppercase block is active, a sequence of keys may not behave as expected.

It could also happen that after the completion of a robotic process, a key remains pressed by accident such as Alt or Control. The best way to ensure the desired behavior is to reset the special keys before launching any combination of keys. For that, in the IWindows robotic process object, use the method windows.resetModKeys();

Why can't I write special characters?

Special characters may not be available on all machines.

For the robotic process to enter special characters, use ScanCodes, which are codes sent by the keyboard to the computer to indicate which key is pressed.

Scan codes are dependent on the selected language, so the same machine using the same scan code can produce different output depending on the selected language. For example, scan code 0x27 is ";" when language is English and "ñ" when language is Spanish. Refer to the constants defined in the KeyEvent class, to get the values of each Key.

In order to use the Scan Codes in your robotic process, use the methods:

windows.getKeyboardSequence().typeScanCode(ENTER SCAN CODE HERE).apply();

Falcon Module

Why can't Falcon find my image in the robotic process working folder?

For Falcon to find the images, you must include them in the Supporting Files section of the robotic process configuration.

To access the images added as support files and assign them to a File variable, use the code:

File supportFile = Paths.get(server.getCurrentDir(), "folder", "fileName").toFile();

Where:

  • server.getCurrentDir(): the work directory of the robotic process, which is where the contents of the root folder of the support files are downloaded.
  • "folder": Must be an existing folder within the support files.
  • "fileName": the name of the file.

Why isn't the robotic process clicking on the image?

In some cases, clicking on an image that has been located on the screen does not work.

The problem may be that you have an expanded Windows font on your screen. It must be 100%. You can check it in the Windows display settings menu. Attached is a screenshot of the configuration in Windows 10.

rpa-faq-3.png

Browser module

To use the Browser module, I need three components: Selenium Java library with drivers, driver-browser connector, and browser. How can I know which version to use?

Appian RPA relies on the Selenium webdrivers to simulate user interaction in the browsers. Please consult the Selenium documentation below for your browser and your browser version. Refer to the Browser Module documentation for instructions on how to configure the robotic processes.

Browser Page
Firefox https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
Chrome https://sites.google.com/a/chromium.org/chromedriver/downloads
IE11 https://raw.githubusercontent.com/SeleniumHQ/selenium/master/cpp/iedriverserver/CHANGELOG

For further information, go to the Selenium website.

How can I move through tabs that open in the browser?

When a new tab is opened by the browser either automatically or as the result of a user action, you are required to explicitly switch to this tab if you want to interact with it.

To change from one tab to another in the browser module, you must call the method switchTo() as described below:

  • Get the open windows/tabs using the driver with the method browser.getDriver().getWindowHandles();
  • Switch to the desired window/tab using the method browser.getDriver().switchTo().window(...);

Example:

List<String> tabs = new ArrayList<String>(browser.getDriver().getWindowHandles());

browser.getDriver().switchTo().window(tabs.get(tabs.size() - 1));

The Browser module does not locate an element I'm visualizing in the browser inspector because it is in another frame. How do I access it?

To access the elements contained in another frame or another pop-up window, you must be positioned inside it. Using the element inspector of the browser, get the name of the frame containing the element to find and use it in the method browser.frameSetNavigation(String frame)

Can I use JavaScript in my robotic process code?

Yes, the Browser module is developed from Selenium and the developer can use all the options that Selenium offers by getting the driver invoking browser.getDriver().

To run JavaScript, use the following code:

JavascriptExecutor jsExecutor = ((JavascriptExecutor) browser.getDriver());

jsExecutor.executeScript("YOUR CODE HERE");

The findElement(By by) method take a lot of time when the WebElement is not present. Why?

The purpose of the method findElement is to wait for a page to be completely loaded and to find an element on this page. As such, this method uses the default timeout defined in the browser module (60 seconds). This means that if the element is not present on the page, the method keeps looking for up to 60 seconds.

To find a WebElement that is not always present in the page, use one of the following options:

  1. Use the existsElement() method, which has a shorter default timeout.

    1
    2
    3
    4
    5
    
     if (browser.existsElement(By.xpath("//xpath/expression"))) {
           server.info("Doesn't exist the element");
     } else {
           // ...
     }
    
  2. Modify the timeout used by the method findElement: browser.setTimeOutSecondsWaitElement(int second);

If you change this timeout for a specific action, it is recommended to restore it afterwards.

Open in Github Built: Thu, Oct 14, 2021 (02:43:30 PM)

On This Page

FEEDBACK