selenium - 无法单击“使用电子邮件注册”按钮
问题描述
我想点击“使用电子邮件注册”按钮。当我点击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.");
}
解决方案
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();
推荐阅读
- json - Postgres:将json对象转换为键值对数组
- tensorflow - “as_graph_def”的可用扩展
- linux - 在 puppet 中,如何从所有设备中创建条带化 LVM?
- voip - 无法在 Linphone iOS 中恢复通话
- python - Python脚本忽略在Github Workflow中传递给它的参数
- react-native - NSString 类型的 CSToastPositionBottom 无法在 react-native-simple-toast 上转换为 NSNumber
- html - Google 脚本中的换行符
- java - 如何在flutter中调用flutter模块到android活动
- go - os.exec.Command("/pathtoscriptfile") - 这个函数被修改了吗?
- javascript - 如何将一串ascii代码转换为文本?