首页 > 解决方案 > 无法单击“使用电子邮件注册”按钮

问题描述

我想点击“使用电子邮件注册”按钮。当我点击https://www.starwars.com/上的“注册”链接时。你能帮忙吗?

在此处输入图像描述

我写了下面的代码。它不会引发任何错误,但不会单击“使用电子邮件注册”按钮。

homePage.click_signUpWithEmailBtn();

//Buttons
    private By signUpWithEmailBtn  = getLocator("a.btn.btn-email.ng-isolate-scope", BY_TYPE.BY_CSSSELECTOR);

public void click_signUpWithEmailBtn(){     
        Assert.assertTrue(this.signUpWithEmailBtn_Presence(), "'Sign up with email' button is absent on the home page.");
        takeScreenshot("Click on 'Sign up with email' button on the home page.");
        click(signUpWithEmailBtn);  
        takeScreenshot("Click on 'Sign up with email' button on the home page.");
    }

标签: seleniumselenium-webdriveriframewebdriverwait

解决方案


Create 帐户存在于iframe中。要单击使用电子邮件注册,您需要在继续单击之前切换到相应的 iframe。

在 Java 中找到以下代码以在嵌套框架之间切换。

切换到外框

它没有任何 id 或名称。所以用网页元素参数切换。

WebElement outterFrameElement = driver.findElement(By.xpath("//iframe[@allowtransparency='true']"));
driver.switchTo().frame(outterFrameElement);

切换到内框:

内部 iframe ID = disneyid-iframe

driver.switchTo().frame("disneyid-iframe");

要切换出框架或切换到默认内容,请使用以下内容。

driver.switchTo().defaultContent();

推荐阅读