【发布时间】:2018-10-10 22:49:52
【问题描述】:
所以我正在测试将一个项目添加到购物车,但实际上我想选择第一个项目(如果存在),否则如果选择第二个项目,但 https://www.prana.com/men/tops/shirts.html 上没有这些项目的列表。所以我为每个图像选择了 CSS 选择器。为了仍然能够拥有多个项目,我想使用 if-else if 语句在项目之间做出决定。我有:
if (driver.findElement(By.cssSelector("a[title='Weathered Blu22e']")).isDisplayed())
{
driver.findElement(By.cssSelector("a[title='Weathered Blue']")).click();
}
else if (driver.findElement(By.cssSelector("a[title='Equinox Blue']")).isDisplayed )
{
driver.findElement(By.cssSelector("a[title='Weathered Blue']")).click();
}
具有“Blu22e”的第一行不是正确的 CSS 标题,但 Blue 是...当我有“blue”时,它会正确选择项目,但是当我放入 Blu22e(进行否定测试并转到else if 语句我看到这个错误:
no such element: unable to locate such an element.
有什么想法可以对第一行进行否定测试吗?我希望它跳过它并继续下一个语句 抱歉,我是实习生,还在上学,所以我的 Java 没有达到标准。
【问题讨论】:
-
您为什么要使用
isDisplayed()验证cssSelector("a[title='Weathered Blu22e']")而在cssSelector("a[title='Weathered Blue']")上调用click()?是不是打错字了? -
@DebanjanB 可能是一个错字我不想验证weathe Blu22e。我想测试一下Blu22e有没有风化? (不,因为它是一个假名)所以转到 Else if 语句
-
我的回答也是基于同样的逻辑。你能试试看,让我知道状态吗?
标签: java selenium if-statement selenium-webdriver try-catch