user2989297 和 Samit Badle 是正确的,但我发现他们的答案非常模糊和令人困惑,直到我遇到另一个帮助我将它们放在一起的帖子。
诀窍是在 openWindow 调用期间将您自己的名称分配给您要选择的窗口。这就是存储变量的目的,尽管在上面的示例中并不清楚。我建议以下内容可能更容易理解。
<tr>
<td>storeAttribute</td>
<td>//table[@id='dtgList']/tbody/tr[1]/td/a@href</td>
<td>varNewWindowName</td>
</tr>
<tr>
<td>echo</td>
<td>${varNewWindowName}</td>
<td></td>
</tr>
<tr>
<td>openWindow</td>
<td>${varNewWindowName}</td>
<td>Profile</td> - this is where we assign it a new name, 'Profile'
</tr>
<tr>
<td>pause</td>
<td>10000</td>
<td></td>
</tr>
<tr>
<td>selectWindow</td>
<td>Profile</td> - now we can select it, using the new name
<td></td>
</tr>
如果您在 Selenium IDE 中工作,等效的命令是:
Command: storeAttribute
Target: //table[@id='dtgList']/tbody/tr[1]/td/a@href
Value: varNewWindow
Command: echo - I've read that the echo command is optional, but I used it
Target: ${varNewWindow}
Value:
Command: openWindow
Target: ${varNewWindow}
Value: Profile - again, this is where we assign the new name
Command: Pause
Target: 10000
Value:
Command: selectWindow
Target: Profile - and then use the new name
Value: