点击“paytm.com”登录时获取弹出窗口,但我无法输入用户名和密码
(####我们如何知道iframe id #######)
这是代码
public void Test() throws Exception {
System.setProperty("webdriver.chrome.driver", "F:\\SELENIUM\\Lib\\chromedriver.exe");
driver= new ChromeDriver();
// driver= new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://paytm.com/");
Thread.sleep(2000);
driver.findElement(By.linkText("Log In / Sign Up")).click();
driver.manage().timeouts().implicitlyWait(100,TimeUnit.SECONDS);
driver.switchTo().alert().accept();
driver.manage().timeouts().implicitlyWait(100,TimeUnit.SECONDS);
//driver.switchTo().frame(driver.findElement(By.xpath(".//iframe[@ng-hide=’showVerificationScreen’]")));
driver.findElement(By.xpath(".//*[@id='input_0']")).sendKeys("email");
driver.findElement(By.xpath(".//*[@id='input_1']")).sendKeys("passwrd");
Thread.sleep(1000);
driver.findElement(By.xpath(".//*[@id='loginForm']/div/md-content/button[1]")).click();
driver.switchTo().defaultContent();
}
答案 0 :(得分:0)
那是框架不警报。因此必须根据其索引或ID切换到iframe。 在paytm.com中,根据HTML代码,登录框架是第3个iframe。你必须把代码编写为switchto.iframe(2);
尝试下面的代码吧。它会起作用
driver.get("http://www.paytm.com");
driver.findElement(By.linkText("Log In / Sign Up")).click();
driver.switchTo().frame(2); // 2 is the iframe index
driver.findElement(By.name("username")).sendKeys("*******");
driver.findElement(By.name("password")).sendKeys("*****");
答案 1 :(得分:0)
您的代码提供例外:
org.openqa.selenium.NoAlertPresentException
这显然没有传达任何警告。在间谍活动中我们得到:
iframe width="715px" height="425px" frameborder="0" ng-class="homePageScrolledDown? 'fixedhead' : ''" border="0" ng-src="/v1/api/login?isIframe=true&theme=mp-web" ng-hide="showVerificationScreen" src="/v1/api/login?isIframe=true&theme=mp-web"
替换 -
driver.switchTo().alert().accept()
带
driver.switchTo().frame(2);
//第二个代表索引号。这是第3帧,可以使用pageSource进行识别。 希望这有用
答案 2 :(得分:0)
这是完整的WORKING代码 `
driver.get("http://www.paytm.com");
driver.findElement(By.linkText("Log In / Sign Up")).click();
Thread.sleep(3000);
driver.switchTo().frame(1);
driver.findElement(By.xpath(".//*[@id='input_0']")).sendKeys(
"email");
driver.findElement(By.xpath(".//*[@id='input_1']")).sendKeys(
"passwrd");
Thread.sleep(1000);
driver.findElement(
By.xpath(".//*[@id='loginForm']/div/md-content/button[1]"))
.click();`