Click element inside a table in iframe using browser lib

Hi All,

Trying to click on a button inside iframe using browser library.
I am facing some interception error for td tr tags.as attached in screenshot


Hi,

Seems like your input can’t be clicked directly, you should target the tr or td instead maybe something like this:

iframe#challengeframe td:has(> input#acssubmit)

Or

iframe#challengeframe tr:has(> td:has(> input#acssubmit))

Regards
Charlie

Thanks for the input, but gettings same error.
Could you please suggest alternate way by using Browser library.
@CharlieScene @damies13 @René @sergiopontes

17336762713418790277307216141965|666x500
This css locator looks good.
But somehow not able to click

Hi Pankaj,

The error message you are getting is telling you that browser library (well actually playwright) couldn’t click on the item you want (the submit button) because there is another element over the top of it which is described by <td> </td> from <tr> </tr>

  • Did you get a screen shot when you got the error?
    • Is the submit button visible in the screenshot
    • Is the submit button partially covered in the screenshot
  • the interesting clue here is it’s not <td align="right"> </td> from <tr> </tr>, so perhaps the table row that’s covering your element is not in the same frame, but in the main html?
    • the solution could be as simple as scrolling the frame contents so the submit button is visible?
  • another way I’ve seen errors like this is when there are 2 elements that match the selector, one “hidden” (i.e. in the mobile version) and one visible (i.e. the desktop version) the first match is the hidden one and that’s the one that fails with an error, but I think Browser Library will warn you about this situation so it might not be this?

Unfortunately with only 2 photo’s to go on, all we can do is guess, you’ll have to investigate, but knowing that the click failed because something was on top of the item you selected might help you investigate.

Dave.

2 Likes

Thank you for your insights @damies13 .
The element is visible in screenshot.
Playwrights says that tr td subtree intercepts the click.
So far the solutions i tried

  1. Scroll to element. #challengeFrame and click using browser library syntex frameid >>> elementId
  2. Click with java script executor using Evaluate JavaScript document.queryselector(“#acssubmit”).click();
  3. By using Press Keys option…i.e. Tab. Tab Click. With wait.
  4. I have also used force=true option of browser library … click with option keyword.

Nothing seems to work…i have my whole framework in based on browser lib with all the common keywords created.
I cant switch to selenium…

So requesting you all to kindly help here…i am also available for quick call on google meet.
If anyone is available on 11 Dec after 9 AM UAE time. Please let me know.
Robot Framework RobotFramework-Dev Browser Libraries

Hi Pankaj,

Does the frame have scroll bars?

Are you able to show the screenshot or at least part of it that shows the button and the frame? I’m hoping there’s a clue in the screenshot.

You mentioned:

That scrolls the frame into view, but you didn’t mention Scroll to element for the submit button itself within the frame?

Another question:
does this frame have other fields e.g. username & password? were you able to fill these fields out with no issue?

We need to figure out why there’s a table cell on top of the button you’re trying to click, and then figure out what to do to move the element out from under that table cell.

Dave.

This frame has one drop down and no scroll bars.
Its a payment page after submitting credit card details its lands on payment confirmation page…where we have submit button.
I am travelling will attach the picture of it.

Also if i remove tr td closets will it remove yhe submit button lying inside it?

Yes, most likely it will.

Dave.

I tried clicking on dropdown element inside iframe…
I am able to highlight it but click action is getting intercepted as shown below:

waiting for locator(‘iframe#challengeFrame’).contentFrame().locator(‘//select[@id='selectAuthResult']’)
- locator resolved to

  • attempting click action
    2 × waiting for element to be visible, enabled and stable
    • element is visible, enabled and stable
    • scrolling into view if needed
    • done scrolling
    • intercepts pointer events
    • retrying click action
    • waiting 20ms
      2 × waiting for element to be visible, enabled and stable
      • element is visible, enabled and stable
      • scrolling into view if needed
      • done scrolling
      • intercepts pointer events
    • retrying click action
      • waiting 100ms
    • waiting for element to be visible, enabled and stable
    • element is visible, enabled and stable
    • scrolling into view if needed
    • done scrolling
    • from … subtree intercepts pointer events

37 × retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-

intercepts pointer events
2 × retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-
intercepts pointer events
- retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-
intercepts pointer events
- retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-
intercepts pointer events
- retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-
intercepts pointer events
36 × retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-
intercepts pointer events
2 × retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-
intercepts pointer events
19 × retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-
intercepts pointer events

  • retrying click action
    • waiting 500ms
    • waiting for element to be visible, enabled and stable
    • element is visible, enabled and stable
    • scrolling into view if needed
    • done scrolling
    • intercepts pointer events

2 × retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
-

intercepts pointer events

  • retrying click action
    • waiting 500ms

Robot Framework @René @damies13 @CharlieScene Browser Browser-Dev PyCharm

AND this is the frame source

ACS Emulator for 3DS V2
<link rel="stylesheet" type="text/css" href="/acs/style/style.css"/>

ACS Emulator for 3DS V2

 

   
Authentication Result:

Hi Pankaj,

I just noticed:
image

I remember reading the other day where there was an issue with using xpath selectors after the >>> not sure if it’s a bug or not? I remember the advice was to use css selectors.

Can you try using this selector instead iframe#challangeFrame >>> select#selectAuthResult?

I also notice that you logs are now showing:
image

Yet in the html you originally showed ContainerNav is empty:

This leads me to think something in the site is generating popups that are interfering with your test?

I’ll be home the rest of the day if you want to pm me a google meet link.

Dave.

As the Environment is down now, I am unable to reproduce the issue.
Will PM you once it’s up.

And I have tried the css in both sides of >>> but didn’t work out.

What can I understand is that we need to find a solution to detach tr … td subtree to make the submit button clickable.

1 Like

@damies13 I would like to thank you from bottom of my heart.
You are the saviour. Helped me in resolving the issue by connecting personally.
Thank you Robot Framework community.

Resolution was :

Browser.Press Keys iframe#challengeFrame.verify-payment-iframe >>> input#acssubmit Enter

3 Likes