java为什么返回到选项卡后弹出窗口会损坏?
我有一个场景:在https://cloud.google.com/products/calculator上填写表单,然后单击电子邮件估计(弹出窗口打开),然后打开并切换到新选项卡(https://yopmail.com/en/email-generator),复制随机电子邮件,然后切换到上一个选项卡(https://cloud.google.com/products/calculator)。在弹出窗口(通过电子邮件发送您的评估)之后,它变得怪异、不活跃,但在手动测试中,一切都正常。有什么问题吗
public void fillOutForm() {
estimatePage = new GoogleCloudHomePage(driver)
.openPage()
.search(SEARCH_TERM)
.goToPricingCalculatorFromSearchResults()
.switchToCalculatorFrame()
.selectComputeEngineItem()
.setNumberOfInstances(NUMBER_OF_INSTANCES)
.setOperatingSystem(OPERATING_SYSTEM)
.setMachineClass(MACHINE_CLASS)
.setSeries(SERIES)
.setMachineType(MACHINE_TYPE)
.setGPU(NUMBER_OF_GPUS, GPU_TYPE)
.setLocalSSD(LOCAL_SSD)
.setDatacenterLocation(DATACENTER_LOCATION)
.setCommittedUsage(COMMITTED_USAGE)
.addToEstimate();
emailEstimatePage = estimatePage.goToEmailEstimate();
tabManager = new TabManager(driver);
tabManager.openNewTab();
tabManager.switchToTab(1);
emailGeneratorPage = new YopmailHomePage(driver)
.openPage()
.generateNewEmailAddress()
.copyEmailAddress();
tabManager.switchToTab(0);
//问题就在这里。弹出窗口已损坏,在此步骤中找不到元素/watch gif
emailEstimatePage.switchToContentFrame();
emailEstimatePage.setEmail();
emailEstimatePage.sendEmail();
tabManager.switchToTab(1);
emailInboxPage = new YopmailHomePage(driver)
.openPage()
.goToEmailInboxPage()
.getGoogleCloudEstimateMessage();
}
TabManager的代码
public class TabManager {
public WebDriver driver;
public TabManager(WebDriver driver) {
this.driver = driver;
}
public void openNewTab() {
((JavascriptExecutor) driver).executeScript("window.open()");
}
public void switchToTab(int tabIndex) {
ArrayList<String> tabs = new ArrayList<>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(tabIndex));
}
}
共 (0) 个答案