无法在 IFrame (Selenium) 中找到元素

普罗佐罗夫

因此,我创建了将卡添加到我的个人资料的成功测试,现在我想验证是否添加了卡,因此我想检查是否出现“您的卡已成功添加”文本,但是由于某种原因,className不位于。

这是一个 iframe 但是我确实输入它以添加卡片详细信息并提交它们,因此试图了解为什么它无法找到以下内容:

在此处输入图片说明

添加卡片

public void addCard(Card card) {
        switchToCardIframe()
                .fillInCardNumber(card.getCardNumber())
                .fillInCardHolder(card.getCardHolderName())
                .fillInExpiryDate(card.getExpiryDate())
                .fillInCvv(card.getCvv())
                .clickOnToggle()
                .clickOnAddButton();
    }

这就是我定位文本的方式

@FindBy(css = "payment-state-message")
private WebElement cardAddedIndicator;

测试

@Test
public void shouldSuccessfullyAddCard() {
    myCards.addCard(cardData());
    assertTrue(myCards.getCardAddedIndicator().isDisplayed());
}

我还尝试检查是否通过转义 iframe 显示了另一个元素,但没有运气,因此感谢任何帮助

driver.switchTo().defaultContent()

在此处输入图片说明

在从 css 定位器获取文本之前,我还尝试了 Thread.sleep() 10 秒但不是运气

这是等待初始化的基本页面

public class BasePage {

    public WebDriver driver;
    protected Wait wait;

    public BasePage(WebDriver driver) {
        initializePage(driver);
        this.wait = new Wait(driver);
    }

    final protected void initializePage(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(new AjaxElementLocatorFactory(driver, 20), this);
    }
}
游轮潘迪

你的 css 是错误的,所以不是

@FindBy(css = "payment-state-message")
private WebElement cardAddedIndicator;

尝试这个

@FindBy(css = ".payment-state-message")
private WebElement cardAddedIndicator;

也不要检查可见性 .isDisplay

而是调用一个文本方法。也放一些延迟/等待。

String actualMessage = myCards.getCardAddedIndicator().getText();
String expectedMessage = "Your card was successfully added"

然后根据他们的实际和预期行为断言这两个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Selenium 无法在 iframe 中找到元素

使用Selenium WebDriver Python无法在iframe中找到元素

无法使用 Xpath 和 Selenium 在 iframe 中找到元素

无法在Selenium Webdriver(java)中找到iframe

硒无法在iframe中找到字典元素

无法在Selenium中找到元素(htmlUnitDriver)

Selenium:Python无法从elif中找到元素

无法在Selenium Python中找到元素

无法在Selenium Python中找到元素

Selenium WebDriver无法在链接中找到元素

无法在 selenium python 中找到一个元素

无法在 Selenium Java 中找到选项卡元素

Selenium Chrome Webdriver无法在Python中找到元素

(JAVA) Selenium - 无法在 while 循环中找到/检测元素

无法在 Selenium 中找到元素,用于提交搜索查询的 Python

无法通过 Selenium 定位 iframe 中的元素

在iframe中回发后,Selenium无法找到iframe

无法在 Selenium 中找到 xPath

没有这样的元素:无法在Python / Selenium中找到ID为ID的元素

赛普拉斯似乎无法在 iframe 中找到任何元素

未捕获(已承诺)无法在克隆的iframe#2460中找到元素

Selenium 沒有找到 iframe 元素

无法通过iFrame中的xpath单击元素-Selenium

Selenium Webdriver(Python)-无法在嵌套iframe中定位元素

无法通过 Selenium 使用 ember 定位 iframe 中的元素

无法在无头模式Selenium C#中找到文本元素

使用Selenium和Python无法在#shadow-root(打开)中找到Sign In元素

自动化 Dynamics 365 CRM 时无法使用 Selenium Webdriver 在表中找到元素

NoSuchElementException,Selenium无法找到元素