我正在编写一个Selenium Webdriver脚本,该脚本应该点击一个链接然后弹出这个模态窗口。
当我尝试访问卡号字段(//输入[@id = pan])时,我得到没有找到这样的元素异常org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":"pan"}
这是我试过的代码没有运气:
WebElement modal = driver.findElement(By.xpath("//div[@class='ute-pay-now-modalContent']"));
driver.switchTo().frame(modal);
WebElement el = driver.findElement(By.xpath("//input[@id='pan']"));
还试过这个:
WebElement modal = driver.findElement(By.className("ute-pay-now-modalContent"));
driver.switchTo().frame(modal);
WebElement el = driver.findElement(By.xpath("//input[@id='pan']"));
还试过这个:
WebDriverWait block = new WebDriverWait(driver,10);
WebElement modal = block.until(ExpectedConditions.visibilityOfElementLocated(By.className("ute-pay-now-modalContent")));
WebElement pan;
pan = modal.findElement(By.id("pan"));
还试过这个:
driver.switchTo().defaultContent();
还试过这个:
driver.switchTo().activeElement();
有人可以帮忙建议我如何解决这个问题吗?
答案 0 :(得分:2)
似乎<div class="ute-pay-now-modalContent">
包含iframe#sema
所需的input
字段。尝试下面的代码,让我知道结果:
WebDriverWait block = new WebDriverWait(driver,10);
block.until(ExpectedConditions.visibilityOfElementLocated(By.className("ute-pay-now-modalContent")));
driver.switchTo().frame("sema");
WebElement pan;
pan = modal.findElement(By.id("pan"));