Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java equals在内部for循环中不起作用_Java_Selenium Webdriver_Assert_Assertion - Fatal编程技术网

Java equals在内部for循环中不起作用

Java equals在内部for循环中不起作用,java,selenium-webdriver,assert,assertion,Java,Selenium Webdriver,Assert,Assertion,这是我的一个客户端应用程序的副本。我想测试负面场景,比如我给出的值在下拉列表中不可用。我将取断言功能的j值。如果j值不是1,则我给出的值不在下拉列表中 对于下面的程序,我期望j值为1,但它只显示0。为什么iqual ignore案例在forloop内部不起作用,但在forloop外部起作用。我甚至列出了forloop中的所有值,它有“May”值 是否有任何简单的脚本来检查我给出的值是否不在下拉列表中 package Facebook; import java.util.List; impor

这是我的一个客户端应用程序的副本。我想测试负面场景,比如我给出的值在下拉列表中不可用。我将取断言功能的j值。如果j值不是1,则我给出的值不在下拉列表中

对于下面的程序,我期望j值为1,但它只显示0。为什么iqual ignore案例在forloop内部不起作用,但在forloop外部起作用。我甚至列出了forloop中的所有值,它有“May”值

是否有任何简单的脚本来检查我给出的值是否不在下拉列表中

package Facebook;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.Test;

public class Login2 {

    @Test
    public void Login() throws InterruptedException {
        System.setProperty("webdriver.chrome.driver",
                "D:\\Besent Technology\\Drivers\\chromedriver_win32_2.34\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.facebook.com/");

        List<WebElement> monthlist = driver.findElements(By.id("month"));

        String month = "May";
        String mon = "May";
        int i = 0;
        int j = 0;

        if (mon.equals(month)) {
            System.out.println(mon + " project should be selected");
            i++;
        }

        for (WebElement ele : monthlist) {
            String fbmonth = ele.getText().trim();
            System.out.println(ele.getText());
            if (fbmonth.equals(month)) {
                System.out.println(fbmonth + " project is displaying");
                j++;
            } else {
                continue;
            }

        }
        System.out.println("print i value: " + i);
        System.out.println("print j value: " + j);

    }
}
好的,我通过运行您编写的测试为您找到了答案,这是因为您的变量fbmonth没有返回一月、二月的月份,实际上它返回的
fbmonth等于“month\nJan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug\nSep\nOct\nNov\nDec”

您需要分解/拆分此文件,然后迭代以获得所需内容。 更新使用此项进行迭代:

for (WebElement ele : monthlist) {
            System.out.println(ele.getText());
            String[] fbmonth = ele.getText().trim().split("\n");
            for(j=0;j<fbmonth.length;j++) {
                System.out.println("fbmonth" +j +"="+ fbmonth[j] );
                if (fbmonth[j].equals(month)) {
                    System.out.println(fbmonth[j] + " project is displaying");

                }
            }



        }
for(WebElement元素元素:月列表){
System.out.println(ele.getText());
字符串[]fbmonth=ele.getText().trim().split(“\n”);

对于(j=0;jA几个备注.1)
else{continue}
是无用的。您可以删除它以提高可读性。2)您似乎使用foreach在
月列表
上迭代,但与变量
j
并行计数。如果
j
应该是
月列表
中的当前索引,则它将不起作用,因为它仅在条件为真时才递增。如果您需要d若要在数组上迭代并跟踪当前索引,请不要使用foreach。据我所知,
i
j
变量更多地用于调试目的,但我可能错了。您可能需要在if语句上使用调试器来找出为什么
“may”!=“may”
//if(fbmonth.equals(month)){System.out.println(fbmonth+“项目正在显示”);j++;//此函数不起作用。@Jeevabalan没问题,总是很乐意帮助。我为您添加了代码以精确获取数组中的月份,您可以告诉我们。请上传并接受正确答案。这太棒了。。非常感谢。。您能分享如何找到“fbmonth等于”Month\nJan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug\nSep\nOct\nNov\nDec“我指的是屏幕,如何在eclipse中加载结果??您可以在eclipse中调试并查找变量。进行youtube搜索并学习它。
for (WebElement ele : monthlist) {
            System.out.println(ele.getText());
            String[] fbmonth = ele.getText().trim().split("\n");
            for(j=0;j<fbmonth.length;j++) {
                System.out.println("fbmonth" +j +"="+ fbmonth[j] );
                if (fbmonth[j].equals(month)) {
                    System.out.println(fbmonth[j] + " project is displaying");

                }
            }



        }