Keeping the focus after opening a new window in the Selenium IDE

若如初见. 提交于 2019-12-11 06:01:49

问题


I'm having a problem retaining the focus after using the openWindow command in the IDE. This problem only applies when a second test case within the same test suite tries to interact with the newly-opened window. For example, I have a test suite consisting of separate test cases to do the following:

  1. Log into site A
  2. Enter some transactional data
  3. Submit the transaction for approval
  4. Open a new window and log into site B
  5. Approve the transaction in site B and close the window
  6. Continue processing the transaction in site A

If I do the test case 5 "site B" actions in the same test case as the "openWindow" (ie. merge test cases 4 and 5) then all commands execute without error. If I do the same actions in a different test case then the new window loses the focus and all Selenium commands are directed back to the original window.

The interesting part of this is trying to identify and reselect the "new" window in step 5.

Executing "selectWindow name=siteB_URL" in test case 5 results in the error message "Window does not exist. If this looks like a Selenium bug...".

I then figured I'd call storeAllWindowNames and echo the results to at least see the window names Selenium knows about at various points. If I do this as the last two commands in test case 4 I get the expected result - "echo ,siteB_URL" is logged. If I do the same thing as the first two lines in test case five I get "echo ". This is the part that gets me - simply changing test cases seems to lose the reference to the new window.

Has anyone come up with a workaround or solution to this problem in the Selenium IDE?

I've spent several hours this morning scouring the web and various forums looking for suggestions to no avail.

Thanks in advance,

Glenn

4-7-12 - Update - here's a simplified example of the scenario above:

[info] Executing: |openWindow | http://www.google.com.au | google2 |
[info] Executing: |selectWindow | google2 | |
[info] Executing: |storeAllWindowNames | allWindows | |
[info] Executing: |echo | ${allWindows} | |
[info] echo: ,google2
[info] Changed test case
[info] Executing: |storeAllWindowNames | allWindows | |
[info] Executing: |echo | ${allWindows} | |
[info] echo:
[info] Executing: |selectWindow | name=google2 | |
[error] Window does not exist. If this looks like a Selenium bug, make sure to read http://seleniumhq.org/docs/04_selenese_commands.html#alerts-popups-and-multiple-windows for potential workarounds. 

回答1:


Have you check it with following commands?

selectFrame | relative=up
selectFrame | iframe name



回答2:


Try with option:

selectWindow()

Just provide the window title name within ().

For Ex: Window Title is Testing, then

command : selectWindow
title : Testing 

To know the title of the newly opened window follow the steps:

Go to the new window

Right click->view page source

Press ctrl+F.

Type title and search.

You will get the title of the new window.

I hope this helps... Thanks Sathiya




回答3:


//on the original window...

command: store window handle

target: myVar

//...do whatever...

command:select window

target: handle=${myVar}



来源:https://stackoverflow.com/questions/11255895/keeping-the-focus-after-opening-a-new-window-in-the-selenium-ide

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!