Selenium WD / Java |无法创建'if'和'else if'语句

问题描述 投票:0回答:3

我有一个网页,如果特定股票被打开/关闭,它有一个指标。为此,我想设置一个if&else if语句。出于某种原因,我在eclipse中遇到错误。

*注意:不知道它是否有帮助,但是如果我将代码复制/粘贴到一个新的空类“主”,它可以正常工作 - 所以代码的结构是好的我想。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

public class TestClock {

public static void chromeMethod(WebDriver driver) {
    System.setProperty("webdriver.chrome.driver", "C:\\automation\\drivers\\chromedriver.exe");
}

public static void runTestClock(WebDriver driver)
{


    WebElement Status = null;
    if( Status == driver.findElement(By.cssSelector(".redClockBigIcon")));
    {
        System.out.println("Stock is closed");
        driver.navigate().back();
    }

    else if (Status == driver.findElement(By.cssSelector(".greenClockBigIcon")) );
    {
        System.out.println("Stock is open");

        driver.navigate().back();
    }

}
}

我在'else'下遇到语法错误:

令牌“else”上的语法错误,删除此令牌

java selenium if-statement selenium-webdriver elements
3个回答
0
投票

您发布的代码有一些问题。

  1. 你把;放在ifelse if声明的末尾。他们都应该被删除。
  2. 您正在比较元素Status(目前是null)和.findElement()回归。如果未找到该元素,则会抛出异常,而不返回null元素。解决这个问题的方法是使用.findElements()(注意复数,Elements)并检查列表是否为空。如果为空,则找不到该元素。
  3. 在这两种情况下都存在.back()语句。因此,它可以移出if并将以任何一种方式执行。

重写代码

public static void runTestClock(WebDriver driver)
{
    if (driver.findElements(By.cssSelector(".redClockBigIcon")).isEmpty())
    {
        System.out.println("Stock is closed");
    }
    else if (driver.findElements(By.cssSelector(".greenClockBigIcon")).isEmpty())
    {
        System.out.println("Stock is open");
    }
    driver.navigate().back();
}

说完所有......通过查看你正在使用的CSS选择器,我猜想绿色意味着股票是开放的,红色意味着它已经关闭。这意味着你的逻辑向后。我想你需要打开你的消息< - >关闭,但你会比我更清楚...


2
投票
else if (Status == driver.findElement(By.cssSelector(".greenClockBigIcon")) );

这是你的错:最后一个;必须删除


0
投票

请删除;在if和else if语句结尾处的(分号)。

© www.soinside.com 2019 - 2024. All rights reserved.