Java For循环仅运行一次以删除电子邮件
我尝试使用java/selenium运行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;
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=0代码>2。条件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是的,我理解。感谢您的澄清。(回到绘图板。我会解决这个问题。)再次感谢!是的,我理解。感谢您的澄清。(回到绘图板。我会解决这个问题。)再次感谢!