Bootstrap

selenium怎么从一个页面返回到主页在进入另一个frame

在Selenium中,要从一个页面返回到主页,

可以使用driver.switch_to.default_content()方法来切换回主页的上下文(context)。

然后,如果需要进入另一个frame,可以使用driver.switch_to.frame()方法。

以下是一个简单的代码示例:

from selenium import webdriver

# 假设driver是已经初始化的WebDriver对象

driver.get("http://www.example.com") # 访问主页

# 假设你现在在一个iframe中

driver.switch_to.frame("iframe_id") # 进入iframe

# 做一些操作...

# 返回主页上下文

driver.switch_to.default_content()

# 现在如果你想进入另一个frame

driver.switch_to.frame("another_iframe_id") # 进入另一个iframe

# 做一些操作...

# 最后,如果需要返回主页上下文

driver.switch_to.default_content()

在这个例子中,首先通过driver.switch_to.frame()进入了一个名为"iframe_id"的iframe。完成操作后,使用driver.switch_to.default_content()返回到主页的上下文。随后又通过driver.switch_to.frame()进入了另一个名为"another_iframe_id"的iframe。在完成最后的操作后,再次使用driver.switch_to.default_content()返回到主页上下文。

用参数的值来定位frame元素

@FindBy(how = How.XPATH, using = "//frame[contains(@scrolling,'auto')]")
private List<WebElement> transferFrameList;

@SneakyThrows
public void approvedRequestFromAuthorise(String screenShotName){
    Thread.sleep(2000);
    switchToFrame();
    Thread.sleep(1000);
    setWindowsMax();
    waitUntilElementVisible(unauthorisedPage);
    int size = doubleApproveParent.size();
    getTransactionRef(size);
    printWindowHandle("start1");
    clickElement(doubleApproveParent.get(size-1));
    Thread.sleep(3000);
    takeScreenshot(screenShotName);
    Thread.sleep(1000);
    driver.switchTo().parentFrame();
    Thread.sleep(1000);
    printWindowHandle("start2");
    findFrame();
    int frameSize = transferFrameList.size();
    logger.info("frameSize: " + frameSize);
    driver.switchTo().frame(transferFrameList.get(frameSize-1));
    Thread.sleep(1000);
    clickElement(doubleApprove);
    Thread.sleep(3000);
}

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;