RohanM 0 Posted July 13 Share Posted July 13 Hi All, I am training to access the button control in webpage which has iframe, I used _WD_FrameEnter method to switch the current content to first frame and tried to get the controls but no luck, can anyone help me? may be I am doing something wrong here since first time I am dealing with iframes. below is the code I tried _WD_Navigate($Session, 'https://ecomm.one-line.com/one-ecom/manage-shipment/cargo-tracking') _WD_LoadWait($Session, Default, 10 * 1000) ConsoleWrite("Frames Count=" & _WD_GetFrameCount($Session) & @CRLF) ConsoleWrite("TopWindow=" & _WD_IsWindowTop($Session) & @CRLF) $sElement = _WD_FindElement($Session, $_WD_LOCATOR_ByXPath, "//iframe[(@id='IframeCurrentEcom')]") _WD_FrameEnter($Session, $sElement) $sButton = _WD_FindElement($Session, $_WD_LOCATOR_ByXPath, "//button[(@id='btnSearch')]") MsgBox(0,'$sButton',$sButton) _WD_ElementAction($Session, $sButton, 'click') _WD_LoadWait($Session, 2000) Link to post Share on other sites
Danp2 1,277 Posted July 13 Share Posted July 13 1) You should get in the habit of reviewing the Scite output panel to diagnose why your script isn't behaving as expected. When I did this, I saw that the Frame wasn't being found. 2) You need to wait until the page is fully loaded. I changed your code slightly and it worked correctly for me -- _WD_Navigate($Session, 'https://ecomm.one-line.com/one-ecom/manage-shipment/cargo-tracking') _WD_LoadWait($Session, Default, 10 * 1000) $sXpath = "//iframe[(@id='IframeCurrentEcom')]" _WD_WaitElement($Session, $_WD_LOCATOR_ByXPath, $sXpath) ConsoleWrite("Frames Count=" & _WD_GetFrameCount($Session) & @CRLF) ConsoleWrite("TopWindow=" & _WD_IsWindowTop($Session) & @CRLF) $sElement = _WD_FindElement($Session, $_WD_LOCATOR_ByXPath, $sXpath) _WD_FrameEnter($Session, $sElement) $sButton = _WD_FindElement($Session, $_WD_LOCATOR_ByXPath, "//button[(@id='btnSearch')]") MsgBox(0,'$sButton',$sButton) _WD_ElementAction($Session, $sButton, 'click') _WD_LoadWait($Session, 2000) WebDriver UDF [GH&S] Latest version Wiki FAQs Link to post Share on other sites
RohanM 0 Posted July 14 Author Share Posted July 14 Hi @Danp2 Thank you so much for your solution. you are correct I didn't check whether the iFram is getting captured or not, also honestly I did not know this command _WD_WaitElement, however I am very beginner for AutoIt scripting and your guidance are very helpful. after checking with _WD_WaitElement I am able to find the controls. thanks Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now