gpt4 book ai didi

java - Selenium WebDriver if else 语句

转载 作者:行者123 更新时间:2023-11-30 10:47:20 24 4
gpt4 key购买 nike

第一次发布者,长期用户从所有这些重要问题中获益。但我需要你的帮助。

下面我想做的是

  1. 导航到一个页面
  2. 找到所有特定链接
  3. 点击第一个链接
  4. 检查是否显示了某个元素,如果显示了则导航回上一页并单击列表的下一个链接。如果未显示,则退出该方法并继续测试脚本。这是我被卡住的部分。

if 语句按需要执行,如果它找到该元素,则它会导航回前一个。但它失败的地方是当它点击页面的第二个链接时。它会搜索该元素,即使该元素不存在于该页面中,并且即使我已明确声明返回也不会退出该方法。

我脑子放屁了,尝试了我能想到的所有可能的组合和排列。如果有人可以帮助我,我将不胜感激。

编辑

让我编辑一下以澄清我的想法。一旦 inactive.isDisplayed() 返回 false,我需要我的方法退出该方法。但是当它导航到第二页时,它会不断尝试查找该元素,然后最终因 NoSuchElementException 而失败。我知道该元素不存在,这就是为什么我需要它退出方法并执行测试脚本的下一步。我希望这能澄清我的情况。这不是一个真正的 Selenium WebDriver 问题,因为它是一个 Java 问题。

谢谢

public void checkErrors() {
List<WebElement> videos =driver.findElements(By.cssSelector(".row-
title"));
for (int i = 0; i < videos.size(); i++) {
videos = driver.findElements(By.cssSelector(".row-title"));
videos.get(i).click();
if (inactive().isDisplayed() != false) {
driver.navigate().back();
} else {
return;
}
}
return;
}

编辑:

private WebElement inactive() {
inactive =
driver.findElement(By.cssSelector("#message>p>strong"));
highlightElement(inactive);
return inactive;
}

最佳答案

在检查消息是否显示之前,您可能希望检查消息是否存在:

public void checkErrors() {
for(int i = 0; ; i++) {
// handle next link
List<WebElement> videos = driver.findElements(By.cssSelector(".row-title"));
if (i >= videos.size())
return;

// click the next link
WebElement video = videos.get(i);
video.click();

// return if the message is missing or hidden
List<WebElement> messages = driver.findElements(By.cssSelector("#message>p>strong"));
if (messages.size() == 0 || !messages.get(0).isDisplayed())
return;

driver.navigate().back();
}
}

关于java - Selenium WebDriver if else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200635/

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