如何将焦点放在一个新的弹出窗口中,该窗口在selenium中没有名称,id或唯一标题

时间:2011-08-17 10:19:51

标签: selenium-rc selenium-webdriver

我想获得焦点或选择一个弹出单击链接的窗口,链接在html中有以下标签

<a target="_restaurant_50" href="/impersonate/50">View Dashboard</a>

如果我将窗口名称设置为_restaurant_50,则会在IDE中显示以下错误

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. 

如何关注此窗口请帮助... 我尝试了网上指定的所有方法,例如获取所有窗口*,按标题选择,但它仅提供父标题,webdriver PHP切换窗口等。

数字50与数据库列表中的数字相同。

我正在使用selenium和PHP。

详细说明:
数组名称在点击之前 (
    [0] =&gt; selenium_main_app_window

点击
之前的数组ID (
    [0] =&gt;未定义

数组名称单击后 (
    [0] =&gt; selenium_main_app_window

数据ID点击后 (
    [0] =&gt;未定义
)E

更新
我尝试使用openWindow(“url”,Windowname)打开网址,点按即可打开。它工作但它打开一个新页面没有跟随登录会话它再次请求登录 在此先感谢

2 个答案:

答案 0 :(得分:0)

我不熟悉PHP selenium驱动程序,但我用Java做的方法是在点击之前获取一个窗口名称(或ID)列表,执行单击,获取新列表并选择窗口以前在那里。请注意,有一个selenium命令可以获取所有已知的窗口名称和ID。

此外,如果问题只是从数据库生成数字,您可以从链接获取目标属性,然后使用它来选择它打开的窗口。

答案 1 :(得分:0)

我可以通过以下步骤来完成上述步骤。

我们有 <a target="_restaurant_50" href="/impersonate/50">View Dashboard</a>

使用
as=getAttribute(//xpath@href)

openWindow(as,MyWindow);
selectWindow("MyWindow");
windowFocus();

这也适用于动态链接。

感谢ALL的宝贵帮助。