我有一个网页,如果特定股票被打开/关闭,它有一个指标。为此,我想设置一个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”上的语法错误,删除此令牌
您发布的代码有一些问题。
;
放在if
和else if
声明的末尾。他们都应该被删除。Status
(目前是null
)和.findElement()
回归。如果未找到该元素,则会抛出异常,而不返回null
元素。解决这个问题的方法是使用.findElements()
(注意复数,Elements)并检查列表是否为空。如果为空,则找不到该元素。.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选择器,我猜想绿色意味着股票是开放的,红色意味着它已经关闭。这意味着你的逻辑向后。我想你需要打开你的消息< - >关闭,但你会比我更清楚...
else if (Status == driver.findElement(By.cssSelector(".greenClockBigIcon")) );
这是你的错:最后一个;必须删除
请删除;在if和else if语句结尾处的(分号)。