Java For循环仅运行一次以删除电子邮件

Java For循环仅运行一次以删除电子邮件,java,eclipse,selenium,for-loop,automation,Java,Eclipse,Selenium,For Loop,Automation,我尝试使用java/selenium运行for循环多次删除电子邮件,但它只运行一次。我还是个初学者,不知道我做错了什么。有人能给我一些帮助吗?非常感谢你的帮助。下面是我正在运行的代码: import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver;

我尝试使用java/selenium运行for循环多次删除电子邮件,但它只运行一次。我还是个初学者,不知道我做错了什么。有人能给我一些帮助吗?非常感谢你的帮助。下面是我正在运行的代码:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class deleteYahooEmail {

        public static void main(String[] args) throws InterruptedException {


        System.setProperty("webdriver.gecko.driver", "/Users/lena/WebDrivers/geckodriver.exe");
        WebDriver driver = new FirefoxDriver(); //launches the browser


        driver.get("https://login.yahoo.com/");
            Thread.sleep(2000);

            driver.findElement(By.id("login-username")).sendKeys("someemailhere@yahoo.com");

            Thread.sleep(2000);
            driver.findElement(By.id("login-signin")).click(); 

            Thread.sleep(2000);
            driver.findElement(By.id("login-passwd")).sendKeys("passwrdhere");

            Thread.sleep(2000);
            driver.findElement(By.id("login-signin")).click();

            Thread.sleep(2000);
            driver.findElement(By.id("header-mail-button")).click();

            WebDriverWait wait = new WebDriverWait(driver, 30);

 for (int i = 0; i >10; i = i + 1) {

    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@type='button'                            and @data-test-id='checkbox']"))).click();

    driver.findElement(By.xpath("//button[@type='button' and @data-test-id='toolbar-delete']")).click();

                }



        }


    }

i++
i=i+1
是相同的

for循环的问题是,您的条件语句总是
false
,因此循环永远不会执行

你的基本意思是,虽然我执行for循环体的次数超过10次,但你能理解为什么这永远不会执行吗?它将永远不会运行,因为您正在使用值0初始化i。看我的图表

有关循环的更多信息,请参见:


i++
i=i+1
是相同的

for循环的问题是,您的条件语句总是
false
,因此循环永远不会执行

你的基本意思是,虽然我执行for循环体的次数超过10次,但你能理解为什么这永远不会执行吗?它将永远不会运行,因为您正在使用值0初始化i。看我的图表

有关循环的更多信息,请参见:


您的for循环正确。for循环由3个组件组成,第一个组件是初始化
inti=02。条件
i<10基本上是说,当我小于10时,继续执行for循环的主体。3.递增/递减在循环的每次迭代后进行,
i++
最终你的
i
将=10,循环将不再执行。因此,您的循环应该如下所示:
对于(inti=0;i<10;i++){do something}
我将其更改为建议的方法,但什么也没有发生。对于(int i=0;i<10;i++){wait.until(ExpectedConditions.elementtobelickable(By.xpath(//button[@type='button'和@data test id='checkbox'])))。单击();驱动程序.findElement(By.xpath(//button[@type='button'和@data test id='toolbar-delete']))。单击();}您尝试过除错器吗?我不熟悉你的代码,所以很遗憾,我不能再继续了。祝你好运我是新手,需要学习调试器。我提供了完整的代码,你只需要添加自己的用户名和密码。但是谢谢你的努力!我也尝试过使用for-while循环,但是代码只运行一次而不是一个连续循环:int x=1;虽然(x您的for循环正确。for循环由3个组件组成,第一个组件是初始化
int i=0;
2。条件
i<10;
基本上是说,当i小于10时,执行for循环的主体。3.递增/递减这是在循环的每次迭代之后执行的,
i++
最终是您的循环
i
will=10,您的循环将不再执行。因此,您的循环应如下所示:
for(int i=0;i<10;i++){do something}
我将此更改为建议的方法,但什么也没有发生。for(int i=0;i<10;i++){wait.unt(ExpectedConditions.elementtobelickable(By.xpath)(//按钮[@type='button'和@data test id='checkbox'])。单击();driver.findElement(按.xpath(//button[@type='button'和@data test id='toolbar-delete'])。单击();}你试过除错器了吗?我不熟悉你的代码,所以很遗憾我不能再继续了。祝你好运!我在这方面是新手,需要学习调试器。我提供了完整的代码,你只需要添加你自己的用户名和密码。但是感谢你的尝试!我也尝试过使用for-while循环,但代码仅限于此只运行一次,而不是一个连续循环:int x=1;while(x是的,我理解。感谢您的澄清。(回到绘图板。我会解决这个问题。)再次感谢!是的,我理解。感谢您的澄清。(回到绘图板。我会解决这个问题。)再次感谢!