- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过访问用户名、联系电话、电子邮件等表单的 Web 元素来自动化银行网站。但是当我尝试运行时,我无法访问它的 Web 元素,因为它失败了,但有异常“无法找到某个元素”,请告诉我如何访问它。
icicibank.com/Personal-Banking/loans/personal-loan/index.page
代码:
WebElement firstName = driver.findElement(By.xpath("//*[@id=\"firstNameId\"]"));
WebElement lastName = driver.findElement(By.id("lastNameId"));
最佳答案
您的元素位于 iframe
内。您必须切换到它才能找到元素:
WebElement iframe = driver.findElement(By.xpath("//iframe"));
driver.switchTo().frame(iframe);
然后您可以像往常一样找到您的元素:
WebElement firstName = driver.findElement(By.xpath("//*[@id='firstNameId']"));
WebElement lastName = driver.findElement(By.xpath("//*[@id='lastNameId']"));
完成 iframe
中的内容后,您必须切换回默认内容,如下所示:
driver.switchTo().defaultContent();
PS:我也会像这样使用WebDriverWait
:
WebDriver driver = new ChromeDriver();
driver.get("https://www.icicibank.com/Personal-Banking/loans/personal-loan/index.page");
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='myDivAdd']/a[2]"))).click(); // dismiss popup
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe"))); // switch to iframe
WebElement firstName = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='firstNameId']")));
firstName.click();
firstName.sendKeys("first name");
WebElement lastName = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='lastNameId']")));
lastName.click();
lastName.sendKeys("last name");
driver.switchTo().defaultContent();
WebDriverWait
将等待至少 10 秒,直到满足 ExpectedConditions
后才执行操作。
注意:您必须添加一些导入:
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.By;
有关WebDriverWait
的更多信息可以在 documentation 中找到。 .
关于java - 我们可以使用 selenium Webdriver 访问 ICICI、HDFC、SBI 等银行网站的 Web 元素以实现自动化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51558381/
HDFC SDK(用 Objective - C 编写)在 SWIFT 中的集成 我正在 Swift 中集成 HDFC iOS SDK。由于 HDFC SDK 仅在 Objective C 中可用,因
我正在尝试为以下网站的客户 ID 查找 xpath- https://netbanking.hdfcbank.com/netbanking/?_ga=1.219943581.521154242.145
我正在尝试通过访问用户名、联系电话、电子邮件等表单的 Web 元素来自动化银行网站。但是当我尝试运行时,我无法访问它的 Web 元素,因为它失败了,但有异常“无法找到某个元素”,请告诉我如何访问它。
我是一名优秀的程序员,十分优秀!