Selenium webdriver 如何在selenium中切换到Iframe
我发现很难输入iframe上显示的用户名和密码,当我们单击signin链接时会弹出iframe 谁能帮我一下吗 网站链接如下 链接:Selenium webdriver 如何在selenium中切换到Iframe,selenium-webdriver,Selenium Webdriver,我发现很难输入iframe上显示的用户名和密码,当我们单击signin链接时会弹出iframe 谁能帮我一下吗 网站链接如下 链接: 关于,要使用iframe,您必须从当前页面切换到iframe。 试试下面的代码,让我知道你的结果 WebDriver driver = new FirefoxDriver(); driver.get("http://cashkaro.iamsavings.co.uk/"); String linkText = "SIGN IN"; WebElement ev
关于,要使用iframe,您必须从当前页面切换到iframe。 试试下面的代码,让我知道你的结果
WebDriver driver = new FirefoxDriver();
driver.get("http://cashkaro.iamsavings.co.uk/");
String linkText = "SIGN IN";
WebElement eventElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.linkText(linkText)));
eventElement.click();
WebElement frame = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.xpath("html/body/div[14]/div[1]/div[2]/div[2]/div[1]/iframe")));
driver.switchTo().frame(frame);
driver.findElement(By.id("uname")).sendKeys("username@domain.com");
driver.findElement(By.id("uname")).sendKeys(Keys.TAB);
driver.findElement(By.id("pwd")).sendKeys("enteryourpassword");
driver.findElement(By.id("sign_in")).click();
使用有效的登录凭据登录。Selenium中存在一个预定义的方法,您可以使用该方法切换到
框架或IFrame
WebDriver driver = new FirefoxDriver();
有3种重载方法可用于切换到帧
1. driver.switchTo().frame(String frameId);
2. driver.switchTo().frame(int frameNumber);
3. driver.switchTo().frame(WebElement frame);
您可以使用上述3种方法中的任意一种来切换帧
希望有帮助 要切换到iframe,可以使用:
public void switchToFrame(WebElement element) {
getDriver().switchTo().frame(element);
}
或
请在下面找到答案
公共无效登录\u通常(){
导航到url(prop.getProperty(“url\u prod\u Locale”);
//父窗口
字符串parent_window=driver.getWindowHandle();
System.out.println(“父窗口窗口:+父窗口”);
findElement(By.xpath(prop.getProperty(“singin_link”)))。单击();
WebDriverWait wait=新的WebDriverWait(驱动程序,7);
字符串iframe_xpath=prop.getProperty(“iframe_com_xpath”);
wait.until(预期条件.frameToBeavailable)和switchToIt(By
.xpath(iframe_xpath));
findElement(By.xpath(prop.getProperty(“email\u id\u InSignIn”))
.sendKeys(prop.getProperty(“用户\电子邮件\ id \签名”);
driver.findElement(由.cssSelector(prop.getProperty(“password\u InSign”))
.sendKeys(道具getProperty(“pwd_signIn”);
布尔复选框标志=driver.findElement(
By.xpath(prop.getProperty(“保持我的签名”)).isSelected();
System.out.println(“复选框标志”+复选框标志);
如果(复选框\u标志==false){
findElement(By.xpath(prop.getProperty(“Keep\u me\u signed\u in”))
。单击();
}
driver.findElement(By.xpath(prop.getProperty(“sign\u button\u sign”))
。单击();
//=================================================================================
/*字符串login\u mesg\u error=driver.findElement(
通过.cssSelector(prop.getProperty(“loginerror”)).getText();
System.out.println(“登录错误:“+login\u mesg\u错误”);
如果(登录错误。长度()0)
{
System.out.println(“成功登录”);
Assert.assertTrue(true,“成功登录”);
应用程序_LOG.debug(“成功登录”);
}否则{
登录错误=driver.findElement(
By.xpath(prop.getProperty(“login_error_mesg”)).getText();
System.out.println(“登录错误:“+login\u mesg\u错误”);
System.out.println(“登录失败”);
Assert.assertTrue(false,“登录失败-用户名或密码不正确”);
应用程序调试(登录错误+“登录失败”);
}
driver.switchTo().defaultContent();
}
wati.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By locator)
wati.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(WebElement element)
Please find the answer below
public void login_normally() {
navigate_to_url(prop.getProperty("url_prod_Locale"));
// Parent window
String parent_window = driver.getWindowHandle();
System.out.println("Parent windiow :" + parent_window);
driver.findElement(By.xpath(prop.getProperty("singin_link"))).click();
WebDriverWait wait = new WebDriverWait(driver, 7);
String iframe_xpath = prop.getProperty("iframe_com_xpath");
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By
.xpath(iframe_xpath)));
driver.findElement(By.xpath(prop.getProperty("email_id_InSignIn")))
.sendKeys(prop.getProperty("user_email_id_signIn"));
driver.findElement(By.cssSelector(prop.getProperty("password_InSign")))
.sendKeys(prop.getProperty("pwd_signIn"));
boolean check_box_flag = driver.findElement(
By.xpath(prop.getProperty("Keep_me_signed_in"))).isSelected();
System.out.println("check_box_flag" + check_box_flag);
if (check_box_flag == false) {
driver.findElement(By.xpath(prop.getProperty("Keep_me_signed_in")))
.click();
}
driver.findElement(By.xpath(prop.getProperty("sign_button_signIn")))
.click();
//=================================================================================
/* String login_mesg_error = driver.findElement(
By.cssSelector(prop.getProperty("loginerror"))).getText();
System.out.println(" login Error : " + login_mesg_error);
if (login_mesg_error.length()<0 ) {
System.out.println("Sucessfully Loggedin");
Assert.assertTrue(true, "Sucessfull Login");
APPLICATION_LOG.debug(login_mesg_error);
} else {
System.out.println("Login Failed");
Assert.assertTrue(false, login_mesg_error);
APPLICATION_LOG.debug(login_mesg_error);
}*/
//==============================================================================
String login_mesg_error=" ";
List<WebElement> li=driver.findElements(By.cssSelector(prop.getProperty("logout_button_css")));
System.out.println(" list size :" +li.size());
if(li.size()>0)
{
System.out.println("Sucessfully Loggedin");
Assert.assertTrue(true, "Sucessfull Login");
APPLICATION_LOG.debug("Sucessfull Login");
} else {
login_mesg_error = driver.findElement(
By.xpath(prop.getProperty("login_error_mesg"))).getText();
System.out.println(" login Error : " + login_mesg_error);
System.out.println("Login Failed");
Assert.assertTrue(false, "Login failed - Incorrect username or password");
APPLICATION_LOG.debug(login_mesg_error + "Login failed");
}
driver.switchTo().defaultContent();
}