Skip to content

Commit

Permalink
Drag and drop now report error on Drop element and not drag when nece…
Browse files Browse the repository at this point in the history
…ssary.

Timeout overwrite option now also overwrite pageLoadTimeout and setScriptTimeout.
  • Loading branch information
vertigo17 committed Jul 30, 2024
1 parent a3e9f7f commit eac72d7
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,12 @@ public class Session {
private WebDriver driver;
private AppiumDriver appiumDriver;

private Integer cerberus_selenium_pageLoadTimeout;
private Integer cerberus_selenium_implicitlyWait;

private Integer cerberus_selenium_pageLoadTimeout;
private Integer cerberus_selenium_pageLoadTimeout_default; // Default value
private Integer cerberus_selenium_setScriptTimeout;
private Integer cerberus_selenium_setScriptTimeout_default; // Default value

private Integer cerberus_selenium_wait_element; // Current Value. This one is the one used by the engine.
private Integer cerberus_selenium_wait_element_default; // Default value
Expand Down Expand Up @@ -231,6 +234,22 @@ public void setCerberus_sikuli_wait_element(Integer cerberus_sikuli_wait_element
this.cerberus_sikuli_wait_element = cerberus_sikuli_wait_element;
}

public Integer getCerberus_selenium_pageLoadTimeout_default() {
return cerberus_selenium_pageLoadTimeout_default;
}

public void setCerberus_selenium_pageLoadTimeout_default(Integer cerberus_selenium_pageLoadTimeout_default) {
this.cerberus_selenium_pageLoadTimeout_default = cerberus_selenium_pageLoadTimeout_default;
}

public Integer getCerberus_selenium_setScriptTimeout_default() {
return cerberus_selenium_setScriptTimeout_default;
}

public void setCerberus_selenium_setScriptTimeout_default(Integer cerberus_selenium_setScriptTimeout_default) {
this.cerberus_selenium_setScriptTimeout_default = cerberus_selenium_setScriptTimeout_default;
}

public Integer getCerberus_selenium_wait_element_default() {
return cerberus_selenium_wait_element_default;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,12 @@ public void startServer(TestCaseExecution execution) throws CerberusException {

Session session = new Session();
session.setCerberus_selenium_implicitlyWait(cerberus_selenium_implicitlyWait);

session.setCerberus_selenium_pageLoadTimeout(cerberus_selenium_pageLoadTimeout);
session.setCerberus_selenium_pageLoadTimeout_default(cerberus_selenium_pageLoadTimeout);

session.setCerberus_selenium_setScriptTimeout(cerberus_selenium_setScriptTimeout);
session.setCerberus_selenium_setScriptTimeout_default(cerberus_selenium_setScriptTimeout);

// _wait_element parameters
session.setCerberus_selenium_wait_element(cerberus_selenium_wait_element);
Expand Down Expand Up @@ -464,7 +468,7 @@ public Request authenticate(Route route, Response response) throws IOException {

// unlock device if deviceLockUnlock is active
if (execution.getRobotExecutorObj() != null && appiumDriver instanceof LocksDevice
&& "Y".equals(execution.getRobotExecutorObj().isDeviceLockUnlock())) {
&& execution.getRobotExecutorObj().isDeviceLockUnlock()) {
((LocksDevice) appiumDriver).unlockDevice();
}

Expand Down Expand Up @@ -1282,6 +1286,18 @@ public void setOptionsTimeout(Session session, Integer timeout) {
session.setCerberus_selenium_wait_element(timeout);
session.setCerberus_sikuli_wait_element(timeout);

LOG.debug(session.getDriver());
LOG.debug(session.getCerberus_selenium_pageLoadTimeout());
LOG.debug(timeout);
if ((session.getDriver() != null) && (session.getCerberus_selenium_pageLoadTimeout() != timeout)) {
LOG.debug("Setting Selenium Robot Options (pageLoadTimeout & setScriptTimeout) timeout to : {}", timeout);
WebDriver driver = session.getDriver();
driver.manage().timeouts().pageLoadTimeout(timeout, TimeUnit.MILLISECONDS);
driver.manage().timeouts().setScriptTimeout(timeout, TimeUnit.MILLISECONDS);
session.setCerberus_selenium_pageLoadTimeout(timeout);
session.setCerberus_selenium_setScriptTimeout(timeout);
}

if ((session.getAppiumDriver() != null) && (session.getCerberus_appium_wait_element() != timeout)) {
LOG.debug("Setting Appium Robot Options timeout to : {}", timeout);
AppiumDriver appiumDriver = session.getAppiumDriver();
Expand Down Expand Up @@ -1326,6 +1342,18 @@ public void setOptionsToDefault(Session session) {
session.getCerberus_sikuli_wait_element_default());
session.setCerberus_selenium_wait_element(session.getCerberus_selenium_wait_element_default());
session.setCerberus_sikuli_wait_element(session.getCerberus_sikuli_wait_element_default());

WebDriver driver = session.getDriver();
if ((driver != null) && (session.getCerberus_selenium_pageLoadTimeout() != session.getCerberus_selenium_pageLoadTimeout_default())) {
LOG.debug("Setting Selenium Robot Options (pageLoadTimeout) timeout to : {}", session.getCerberus_selenium_pageLoadTimeout_default());
driver.manage().timeouts().pageLoadTimeout(session.getCerberus_selenium_pageLoadTimeout_default(), TimeUnit.MILLISECONDS);
session.setCerberus_selenium_pageLoadTimeout(session.getCerberus_selenium_pageLoadTimeout_default());
}
if ((driver != null) && (session.getCerberus_selenium_setScriptTimeout() != session.getCerberus_selenium_setScriptTimeout_default())) {
LOG.debug("Setting Selenium Robot Options (setScriptTimeout) timeout to : {}", session.getCerberus_selenium_setScriptTimeout_default());
driver.manage().timeouts().setScriptTimeout(session.getCerberus_selenium_setScriptTimeout_default(), TimeUnit.MILLISECONDS);
session.setCerberus_selenium_setScriptTimeout(session.getCerberus_selenium_setScriptTimeout_default());
}
LOG.debug("Setting Robot highlightElement back to default values : Selenium {} Sikuli {}",
session.getCerberus_selenium_highlightElement_default(),
session.getCerberus_sikuli_highlightElement_default());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1544,7 +1544,11 @@ public MessageEvent doSeleniumActionDragAndDrop(Session session, Identifier drag
return message;
} else {
message = new MessageEvent(MessageEventEnum.ACTION_FAILED_DRAGANDDROP_NO_SUCH_ELEMENT);
message.setDescription(message.getDescription().replace("%ELEMENT%", drag.getIdentifier() + "=" + drag.getLocator()));
if (answerDrag.isCodeEquals(MessageEventEnum.ACTION_SUCCESS_WAIT_ELEMENT.getCode())) {
message.setDescription(message.getDescription().replace("%ELEMENT%", drop.getIdentifier() + "=" + drop.getLocator()));
} else {
message.setDescription(message.getDescription().replace("%ELEMENT%", drag.getIdentifier() + "=" + drag.getLocator()));
}
return message;
}
} catch (NoSuchElementException exception) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
* [ENGINE] When callService that is attached to an application, host and contextroot of the corresponding application is used (if country env of the application does not exist on the test case application, search is also made on linked environments).
* [ENGINE] New variable for system.dates. You can now for example do %system.DAY-13-d% that will return the day of month (d) of 13 days ago (DAY-13). (locale of country invariant is used)
* [ENGINE] test case dependency engine now alow to define a delay between the end of an execution and the start of the next one. That allow to execute a campaign with some testcases on day 1 and release the rest of the testcases on day 2 (after some end of day treatments has been executed)
* [ENGINE] Drag and drop now report error on Drop element and not drag when necessary.
* [ENGINE] Timeout overwrite option now also overwrite pageLoadTimeout and setScriptTimeout.
* [GUI] Added service call simulation feature. When editing a service, you can make calls outside a testcase context in order to control and tune the definition of the call.
* [GUI] Improved autocompletion adding boolean, flags and contextual element for select and switchWindow actions.
* [GUI] Improved navigation on campaign execution screen. Adding CTA on top of the screen and toggle buttons for reporting details hidden by default.
Expand Down

0 comments on commit eac72d7

Please sign in to comment.