Element not interactable two times in a row

Hi,

I’m looking for some help, i’m facing the same issue for more than 2 weeks and it blocks my test suites.

I’m working on a webapp where all objects are in frames.

The frame’s id are random : gxmain1625579338070_left so i created iframe xpath with regex to put them as parent for my object. Because only _left remains at each frame’s id.

Here is the xpath from the element that give me the error

The fact is that wherever i come from in the webapp the first time that i setText in the input it works, the second time i always get this error

Before setting text i have a WebUI.waitForElementClickable that doesn’t fail.

image

If anyone have any idea, tell me please

Thanks :slight_smile:

What does this line do?

    WebUI.sendKeys(findTestObject('Footer/input_command), Keys.chord(Keys.CONTROL))

I guess that this line changes the internal status of the <input id="COMMAND"> element managed by JavaScript on the page somehow (so that the element becomes not interactable). Doesn’t it?

In the post you wrote

But I could not understand how frames concerns about the “element not interactable” problem.

Do you think `frames" have something to do with the problem, or not?

it send CTRL to start the search, it’s like pressing ENTER

I don’t know where the problem come from.

All I know it’s when i tried the same routine on other website to test my methods i didn’t encouter the same problem. So it may be the source of the problem :confused:

I suppose that the difficulty you have now does not come from Katalon Studio or your way of using Katalon Studio. The difficulty comes from the web application itself. Only you can investigate it. Others in this forum would have little chance to contribute.

One suggestion: do not use the “Parent iframe” setting in your test object. Instead, manually call WebUI.switchToFrame():

However, as @kazurayam said, getting an ElementNotInteractableException usually has nothing to do with iframes. If anything, you would be getting a NoSuchElementException if you were in the wrong context.

This part of our question is a big clue in my opinion:

To me, this means that:

1.) The first time, you are targeting the element you are expecting.
2.) The second time, you are actually targeting an element that IS NOT the <input> you want, and this other <input> happens to be not interactable.

To confirm this, put a breakpoint in your script before you set the field, open your dev tools, and test your xpath against the HTML (make sure you are in the right iframe in devtools too).

2 Likes

It’s still not working but i was able to use switchToFrame()

image

With this code i put

0DG in the input (it sends me to the screen 0DG)

Then i want to go back to main menu using moveTo0()

I’m able to go to 0DG but not go back to 0.

[EDIT]

To give some new clues

  • I can interact whenever i want since i don’t leave the screen
  • When i change of screen i get the value of the input it gives me 0DG while my input is blank

So, the input that i call is the one from the last screen.

The switch to frame don’t work two times in a row since i’m already in the context of the frameright.

Hi , the element that you are trying to interact the second time, is visible or not. I mean, does a normal user should to scroll down until it is visible or not? do you know that?
can you show the element first time and second time in the screen ?
what about if you try waitforpageload method before waitforelementclickable method just to double check. and then insert scrolltoelement method as well