硒网络驱动程序 | driver().switchTo().defaultContent() 方法未将控件从多个子 windows 切换回父 window
Selenium webdriver | driver().switchTo().defaultContent() method is not switching the control back to parent window from multiple child windows
Selenium 网络驱动程序 | driver().switchTo().defaultContent()
方法未将控件从多个子 windows.
切换回父 window
我遇到的问题是 windows 个,而不是框架。当我点击父 window 上的一个按钮说 wp 时,一个新的网站 window 说 w1 正在生成,最终又生成一个 window 说 w2 ,我想切换到控制 wp所以我正在使用
driver.switchTo.defaultContent()
但它没有将控制权切换到父级 window。
有两种类似的方法可以在切换到父框架时使用,但它们之间略有不同。
driver.switchTo().defaultContent()
driver.switchTo().parentFrame()
例如:你有三个帧 i1,i2,i3 并且你在帧 i3 上,
当你使用 driver.switchTo.defaultContent()
时,它会将你带到 i1,而使用
driver.switchTo.parentFrame()
控件将切换到 i2 即直接父框架(当前框架的父框架)。
如果进程打开多个浏览器标签,我们需要使用switchTo().window(window reference);
在标签之间切换焦点。
// Save the initial tab as parentwindow
String parentwindow = driver.getWindowHandle();
// Collect the tabs opened in a list
List<String> windows = new ArrayList<>(driver.getWindowHandles());
// Switch to window other than parentwindow
driver.switchTo().window(windows.get(1));
// Switch back to parentwindow
driver.switchTo().window(parentwindow);
我有这个问题。
我找到了答案
试试这个,然后给我反馈 - 也许我可以帮助你
const number1 = await driver.wait(until.elementLocated(By.xpath('your xpath')))
await driver.executeScript("arguments[0].click()", number1).then(() =>{
console.log(driver.executeScript, 'Click done');
})
您是要切换到 window tabs 还是 iframe?
for frames : 我们需要做的,
driver.switchTo().defaultContent();
driver.switchTo.parentFrame();
对于 windows :
String parentwindow = driver.getWindowHandle();
List<String> allwindows = new ArrayList<>(driver.getWindowHandles());
driver.switchTo().window(allwindows.get(1));
driver.switchTo().window(parentwindow);
我在我的云会话中使用 RemoteWebDriver,其中 VM 运行 测试。在本地,它使用 $ driver.switchTo().defaultContent() $ 为我工作,但突然之间,它不适用于 RemoteWebDriver。我使用以下方法解决了我的问题:
driver.switchTo().parentFrame();
Selenium 网络驱动程序 | driver().switchTo().defaultContent()
方法未将控件从多个子 windows.
我遇到的问题是 windows 个,而不是框架。当我点击父 window 上的一个按钮说 wp 时,一个新的网站 window 说 w1 正在生成,最终又生成一个 window 说 w2 ,我想切换到控制 wp所以我正在使用
driver.switchTo.defaultContent()
但它没有将控制权切换到父级 window。
有两种类似的方法可以在切换到父框架时使用,但它们之间略有不同。
driver.switchTo().defaultContent()
driver.switchTo().parentFrame()
例如:你有三个帧 i1,i2,i3 并且你在帧 i3 上,
当你使用 driver.switchTo.defaultContent()
时,它会将你带到 i1,而使用
driver.switchTo.parentFrame()
控件将切换到 i2 即直接父框架(当前框架的父框架)。
如果进程打开多个浏览器标签,我们需要使用switchTo().window(window reference);
在标签之间切换焦点。
// Save the initial tab as parentwindow
String parentwindow = driver.getWindowHandle();
// Collect the tabs opened in a list
List<String> windows = new ArrayList<>(driver.getWindowHandles());
// Switch to window other than parentwindow
driver.switchTo().window(windows.get(1));
// Switch back to parentwindow
driver.switchTo().window(parentwindow);
我有这个问题。 我找到了答案 试试这个,然后给我反馈 - 也许我可以帮助你
const number1 = await driver.wait(until.elementLocated(By.xpath('your xpath')))
await driver.executeScript("arguments[0].click()", number1).then(() =>{
console.log(driver.executeScript, 'Click done');
})
您是要切换到 window tabs 还是 iframe?
for frames : 我们需要做的,
driver.switchTo().defaultContent();
driver.switchTo.parentFrame();
对于 windows :
String parentwindow = driver.getWindowHandle();
List<String> allwindows = new ArrayList<>(driver.getWindowHandles());
driver.switchTo().window(allwindows.get(1));
driver.switchTo().window(parentwindow);
我在我的云会话中使用 RemoteWebDriver,其中 VM 运行 测试。在本地,它使用 $ driver.switchTo().defaultContent() $ 为我工作,但突然之间,它不适用于 RemoteWebDriver。我使用以下方法解决了我的问题:
driver.switchTo().parentFrame();