Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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 选择Selenium中不同行中的按钮_Java_Selenium_Selenium Webdriver_Ui Automation - Fatal编程技术网

Java 选择Selenium中不同行中的按钮

Java 选择Selenium中不同行中的按钮,java,selenium,selenium-webdriver,ui-automation,Java,Selenium,Selenium Webdriver,Ui Automation,我有一个表与Foo链接,在Begging它将永远是20。 单击链接后,可能会有一个按钮 我想写一个程序,包括两个功能: 单击第一个Foo链接,然后: 如果按钮可见,请单击它,返回,然后再次单击第一个Foo链接。单击后,旧的将消失,但底部将添加新的, 如果按钮不可见,请返回并选择下一行中的Foo链接“添加”以抵消偏移。 我尝试了以下代码: List<WebElement> elements = driver.findElements(By.linkText("Never"));

我有一个表与Foo链接,在Begging它将永远是20。 单击链接后,可能会有一个按钮

我想写一个程序,包括两个功能:

单击第一个Foo链接,然后:

如果按钮可见,请单击它,返回,然后再次单击第一个Foo链接。单击后,旧的将消失,但底部将添加新的, 如果按钮不可见,请返回并选择下一行中的Foo链接“添加”以抵消偏移。 我尝试了以下代码:

List<WebElement> elements = driver.findElements(By.linkText("Never"));
    System.out.println(driver.findElements(By.linkText("Foo")).size());
        int nextRow=0;
        int uncleanedSubmissions = 0;
        int cleanedSubmissions = 0;
        System.out.println(nextRow);
        do {
            elements.get(nextRow).click();
            Helper.sleep(3000, driver);
            if (driver.findElement(By.className("button")).isDisplayed()) {                 
                driver.findElement(By.className("button")).click();
                driver.get(baseUrl);
                cleanedSubmissions++;
                System.out.println(nextRow);
            } else if (!(driver.findElement(By.className("button").isDisplayed())) {
                uncleanedSubmissions++;
                nextRow++;
                System.out.println(uncleanedSubmissions + ". submission has not been cleaned");
                driver.get(baseUrl);
            }
        } while (nextRow < 20);
其他tr完全相同-示例中扩展了一个tr

带有按钮的页面示例仅排除了其他css问题,没有iframe:

<a id="button" class="taglib-icon" href="Linkhere">
但本页不包含任何其他重要内容

编辑2: 我已将代码更改为如下所示-在第一次运行时,出现了一个错误StaleElementReferenceException:元素引用已过时。其中指向elements.getnextRow.click;拿到1分了。未清理提交日志-第一次运行是第二次运行 我将继续尝试解决它,因为您的列表大小为20

int Number=driver.findElementsBy.linkTextFoo.size

您应该将while条件的代码更改为


下一步有html代码吗?您能提供url或html代码吗?可能是您的代码驱动程序。findElementsBy.linkTextFoo没有返回任何记录。这就是为什么它说你的名单是零。也许你应该检查你的HTML以找到你想要的元素。添加HTML。我还想知道是否可以使用td id,它的增量与col-end-date_row-9add List elements=driver.findElementsBy.linkTextFoo中的增量相同;就在do{line之后的行。
<a id="button" class="taglib-icon" href="Linkhere">