Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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 如果语句(element.click或break)不起作用_Java_Selenium Webdriver - Fatal编程技术网

Java 如果语句(element.click或break)不起作用

Java 如果语句(element.click或break)不起作用,java,selenium-webdriver,Java,Selenium Webdriver,我有一个标签列表,我需要单击包含特定数字的标签(比如4) 我不明白if语句(作为元素。click();或break;不工作)有什么问题。。。有人能帮忙吗?我想您可以通过 "//div[@class='divClass']/ul[@class='ulClass']/li[text()='4']" 要获取具有所需值的li标记,请尝试以下代码:- String value = driver.findElement(By.xpath("//div[@class='divClass']/ul[@clas

我有一个
  • 标签列表,我需要单击包含特定数字的标签(比如4)


    我不明白
    if
    语句(作为
    元素。click();
    break;
    不工作)有什么问题。。。有人能帮忙吗?

    我想您可以通过

    "//div[@class='divClass']/ul[@class='ulClass']/li[text()='4']"
    
    要获取具有所需值的li标记,请尝试以下代码:-

    String value = driver.findElement(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li[4]")).getText();
    
    希望它能帮助您:)

    实际上控件没有进入if循环,
    使用下面的方法
    字符串a=“4”;
    List Allegements=driver.findElements(By.xpath(“//div[@class='divClass']]/ul[@class='ulClass']/li”);
    for(WebElement:等位基因){
    字符串bText=element.getText();
    系统输出打印LN(a+“?”+B文本);
    如果(a等于(b文本)){
    元素。单击();
    打破
    }
    }
    或
    
    使用javascript单击而不是普通单击。。。。。。。。。。。。。。。。。。。。。。。 字符串a=“4”; List Allegements=driver.findElements(By.xpath(“//div[@class='divClass']]/ul[@class='ulClass']/li”)`在这里输入代码` 对于(inti=0;i@Manjunatha.N 我不知道控件为什么没有进入
    if
    语句中,但我设法使它工作:

    int a = 4;
    List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li")); 
        for (WebElement element: allElements) {
            String bText = element.getText();
            int b = Integer.parseInt(bText);
            if (a != b) {
                System.out.println(a + " = " + b + "? are not equal!");
            } else {
                System.out.println(a + " = " + b + "? are equal!");
                element.click();
                break;
            }
        }
    

    然后单击所需的元素!!!!

    这是实际的eclipse输出,还是您自己将其作为您看到的输出的一个示例?我只是问,因为我看不出if状态有任何错误。您可以给每个项和id,并使用带有id而不是xpath的getElement。这是eclipse的输出(还有真正的代码……我只修改类名,但只要Eclipse打印出正确的数字,这在这里就不重要了)。我不能修改网站,它在www.Shubham Jain上。我修改代码如下:'code'String xpathText=“\”//div[@class='divClass']/ul[@class='ulClass']/li[text()='+a+']\”;System.out.println(xpathText);WebElement number1=driver.findElement(By.xpath(xpathText));number1.click();“code”错误是(xpathText打印正确):线程“main”org.openqa.selenium.InvalidSelectorException中的异常:给定的选择器“//div[@class='divClass']/ul[@class='ulClass']]/li[text()='4']”无效或未导致WebElement。TypeError:表达式无法转换为返回指定的类型。代码正常工作,我打印了if循环中的值,中断符工作正常,但元素仍然存在问题。单击(),因为没有单击正确的数字,但这里不是这种情况。我将深入查看网站代码,以了解为什么不能正常工作,因为使用此代码找到的元素应该是正确的。非常感谢guyz的帮助,非常感谢!请使用javascript单击而不是正常单击(int i=0;i
    "//div[@class='divClass']/ul[@class='ulClass']/li[text()='4']"
    
    String value = driver.findElement(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li[4]")).getText();
    
        Actually the control is not going inside if loop, 
    
        use below approch
    
        String a = "4";
        List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li")); 
            for (WebElement element: allElements) {
                String bText = element.getText();
                System.out.println(a + " ? " + bText );
                if (a.equals(bText)){
                    element.click();
                    break;
                }
            }
    
    
    
    OR
    
    Use javascript click instead of normal click....................... 
    
        String a = "4";
        List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li"));`enter code here`
    for(int i=0; i<allElements.size;i++)
    {
    if(a.equals(allElements.get(i).gettext(bText))
    {
    javascriptExecutor jse = (JavascriptExecutor)driver;
    jse.executeScript("arguments[0].click();", allElements.get(i));
    }   
    }
    
    int a = 4;
    List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li")); 
        for (WebElement element: allElements) {
            String bText = element.getText();
            int b = Integer.parseInt(bText);
            if (a != b) {
                System.out.println(a + " = " + b + "? are not equal!");
            } else {
                System.out.println(a + " = " + b + "? are equal!");
                element.click();
                break;
            }
        }
    
    1 = 4? are not equal!
    2 = 4? are not equal!
    3 = 4? are not equal!
    4 = 4? are equal!