我有一个场景,我点击一个按钮,然后弹出一个新窗口。 现在,我在弹出窗口中找不到元素,所以我试图切换到新窗口\弹出。
我尝试过这样做,但收到错误:
_webdriver.SwitchTo().Window("0bd0568d-df1f-4472-b20b-842e03d412bd");
我得到的错误是:
NoSuchWindowException:找不到窗口
我通过运行以下命令找到了窗口ID:
foreach (string handle in _webdriver.WindowHandles)
{
string popup = _webdriver.SwitchTo().Window(handle).ToString();
}
答案 0 :(得分:1)
每次打开窗口时WindowHandle
都会更改,因此您无法像这样进行指定。每次要切换时都要使用循环。
此外,SwitchTo().Window(handle)
返回IWebDriver
实例,而不是窗口ID。请使用driver.CurrentWindowHandle
。
// get the current active window
string parentHandle = driver.CurrentWindowHandle;
// open new window
// switch to the new window
foreach (string handle in driver.WindowHandles)
{
if (!handle.Equals(parentHandle))
{
driver.SwitchTo().Window(handle);
}
}
答案 1 :(得分:0)
窗口句柄的字符串值在运行时动态生成,因此每次运行测试时都会不同。
您应该在driver.CurrentWindowHandle
中查找driver.WindowHandles
,然后切换到下一个bool bFound = false;
foreach (string windowHandle in driver.WindowHandles)
{
if (bFound)
{
driver.SwitchTo().Window(windowHandle);
break;
}
bFound = windowHandle == driver.CurrentWindowHandle;
}
。虽然在Opera或Android上进行测试时可能会出现问题。
js:
$('#biography').keyup(function () {
var words = this.value.match(/\S+/g).length;
$('#count').html('Words Count:'+words);
});
HTML:
<div id="count"></div>