gpt4 book ai didi

java - 在生成的 EPX 付款表单中查找文本框时遇到问题

转载 作者:行者123 更新时间:2023-12-01 11:16:44 24 4
gpt4 key购买 nike

第一次在这里提问。

<input type="text" name="account_nbr" value="" maxlength="19"
autocomplete="off" class="mainTextBox" id="account_nbr" >

这是一些让我头疼的简单 html。我认为的问题是,此文本框包含在我从下拉菜单中选择信用卡类型后在页面上生成的 EPX CC 付款表单中。它不在新窗口或其他任何地方。它只是页面内生成的一个表单。

我尝试使用以下方法等待:

public static WebElement textbox_CardNumber(WebDriver driver) {
WebDriverWait wait = new WebDriverWait(driver, 15);
element = wait.until(ExpectedConditions.elementToBeClickable(By.id("account_nbr")));
return element;
}

每次都会超时。我也尝试过使用不同的 xpath 几次,但没有任何效果( throw 飞镖)。我现在对 selenium 和 java 还很新手,希望其他人也遇到过这样的事情。

最佳答案

第三方提供的表单通常会出现在 iFrame 中。 iFrame 有自己的 DOM,与父页面的 DOM 分开。由于 Selenium 直接在 DOM 上操作,因此它不会在包含的 iFrame 中查找。

要查看内容,您必须使用 Selenium 切换到 iframe 的上下文。

实现此目的的一种方法是使用 driver.switchTo()。 WebDriverWait 还提供了一个很好的方法来执行此操作。

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("id or name of the iframe element"));

您可以随时使用 driver.switchTo().defaultContent() 切换回使用页面的主 DOM。

关于java - 在生成的 EPX 付款表单中查找文本框时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31734937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com