我正在使用webdriver和codeception执行验收测试。我有点新鲜,所以请耐心等待。我试图切换到单击按钮后生成的子窗口:
<input class="submit_btn" type="button" onclick="openHAWin(this.form.purchase_clinic.value)" value="add" name="add_ha">
由于代码中没有嵌入此页面的名称,也没有目标页面本身的名称,因此我尝试使用以下推荐代码切换到子页面:
$I->executeInSelenium(function (\Webdriver\Session $webdriver) {
$handles=$webdriver->window_handles();
$last_window = end($handles);
$webdriver->focusWindow($last_window);});
但是,上面的代码在使用它的步骤中引发错误:
“我在selenium中执行”lambda function“”
webdriver接受失败......
答案 0 :(得分:0)
当我确定一次只能打开2个窗口/标签(父级和新标签)时,我使用了我正在使用的方法,但它是在java中,所以你必须移植它到你的环境此代码基于我对此门户+矿山添加的研究。 基本上下面做了什么:获取所有可用的窗口并切换到不是父窗口的窗口。
String parent = driver.getWindowHandle();
Thread.sleep(1000);
Set<String> availableWindows = driver.getWindowHandles();
String newWindow = null;
for (String window : availableWindows) {
if (!parent.equals(window)) {
newWindow = window;
}
}
if (newWindow != null) {
WebDriver op = driver.switchTo().window(newWindow);
//("Driver switched to new window: " + op.getTitle() + " | " + op.getCurrentUrl());
]