【问题标题】:Selenium webdriver javaexecutor with for loopSelenium webdriver java执行器与for循环
【发布时间】:2019-10-17 06:07:05
【问题描述】:

嗨,我是 selenium webdriver 的新手,所以我不知道如何在使用 javascript 执行程序时使用 for 循环,所以任何人都可以将下面的代码转换为 for 循环或任何循环,在下面的代码中,你可以观察到 div [ ] 在这一行的 div[6] 之后发生变化 driver.findElement(By.xpath("//*[@id='unfreezedGridBody']/div[6]/div[5] /div/div/span[3]"));

任何帮助将不胜感激。

int count = 
driver.findElements(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[1]/div/div/span[3]")).size();
System.out.println(count);

JavascriptExecutor jse = (JavascriptExecutor)driver; 
WebElement dropdowns = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[1]/div/div/span[3]"));
jse.executeScript("arguments[0].scrollIntoView()", dropdowns);
jse.executeScript("arguments[0].click();", dropdowns);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);



JavascriptExecutor jse2 = (JavascriptExecutor)driver;
WebElement dropdowns2 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[2]/div/div/span[3]"));
jse2.executeScript("arguments[0].scrollIntoView()", dropdowns2);
jse2.executeScript("arguments[0].click();", dropdowns2);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);


JavascriptExecutor jse3 = (JavascriptExecutor)driver;
WebElement dropdowns3 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[3]/div/div/span[3]"));
jse3.executeScript("arguments[0].scrollIntoView()", dropdowns3);
jse3.executeScript("arguments[0].click();", dropdowns3);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);


JavascriptExecutor jse4 = (JavascriptExecutor)driver;
WebElement dropdowns4 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[4]/div/div/span[3]"));

JavascriptExecutor jse5 = (JavascriptExecutor)driver;
WebElement dropdowns5 = 
driver.findElement(By.xpath("//[@id='unfreezedGridBody']/div[6]/div[5]/div/div/span[3]"));
jse5.executeScript("arguments[0].scrollIntoView()", dropdowns5);``
jse5.executeScript("arguments[0].click();", dropdowns5);
Thread.sleep(2000);
driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
Thread.sleep(10000);

【问题讨论】:

  • 你能分享html代码或url吗?解决方案是更改 xpath。

标签: javascript java selenium


【解决方案1】:

这可能对你有用

    String xpath = "//[@id='unfreezedGridBody']/div[6]/div[%d]/div/div/span[3]";
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    for(int i=1; i<4; i++){
        WebElement dropdowns = driver.findElement(By.xpath(String.format(xpath,i)));
        jse.executeScript("arguments[0].scrollIntoView()", dropdowns);
        jse.executeScript("arguments[0].click();", dropdowns);
        Thread.sleep(2000);
        driver.findElement(By.xpath("//li[@data-content='PASS']")).click();
        Thread.sleep(10000);
    }

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多