我有1个第三方集成为Paypal。当我单击“下订单”按钮时,它将从“下订单”页面导航到贝宝页面。 你能让我知道它将如何工作吗?我已经尝试过下面的代码,我将重定向到Paypal页面,但是会出现新的窗口而不是同一页面。 请让我知道如何保持在同一屏幕上。
String handle= driver.getWindowHandle();
System.out.println(handle);
driver.findElement(By.name("New Message Window")).click();
Set handles = driver.getWindowHandles();
System.out.println(handles);
for (String handle1 : driver.getWindowHandles()) {
System.out.println(handle1);
driver.switchTo().window(handle1);
}
答案 0 :(得分:0)
我有一个使用量角器的硒测试环境,其中会有一个driver
指示webdriver。我在我的js代码中使用了selenium-webdriver
npm软件包,并且我有一个在新旧标签页/弹出窗口之间切换的功能:
goToTab(driver, tab) {
if (tab !== 1 || tab !== 0) {
throw new Error(`Tab ${tab} doesn't exist`);
}
return driver
.then(() => driver.getAllWindowHandles())
.then((handles) => {
driver.switchTo().window(handles[tab]);
})
.catch((err) => {
console.error('error in goToTab: ' + err);
throw err;
});
}
答案 1 :(得分:-1)
要切换到新窗口,您需要使用 ExpectedConditions 设置为numberOfWindowsToBe()
的方式诱使 WebDriverWait ,如下所示:
String parent_handle= driver.getWindowHandle();
System.out.println(parent_handle);
driver.findElement(By.name("New Message Window")).click();
new WebDriverWait(driver,10).until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> handles = driver.getWindowHandles();
System.out.println(handles);
for(String handle1:handles)
if(!parent_handle.equals(handle1))
{
driver.switchTo().window(handle1);
System.out.println(handle1);
}