Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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分别选择具有相同类的每个div_Java_Selenium_Selenium Firefoxdriver - Fatal编程技术网

Java Selenium分别选择具有相同类的每个div

Java Selenium分别选择具有相同类的每个div,java,selenium,selenium-firefoxdriver,Java,Selenium,Selenium Firefoxdriver,我正在尝试使用中的class tile consultation选择所有div,单击每个div并从每个div提取一些数据,我尝试使用: List<WebElement> professors = driver.findElements(By.className("tile-consultation")); ListIterator<WebElement> theListOfProfessors = professors.listIterator();

我正在尝试使用中的class tile consultation选择所有div,单击每个div并从每个div提取一些数据,我尝试使用:

    List<WebElement> professors = driver.findElements(By.className("tile-consultation"));
    ListIterator<WebElement> theListOfProfessors = professors.listIterator();
    Thread.sleep(1000);

    int i = 1;
    while(theListOfProfessors.hasNext()) {
        WebElement professorI = driver.findElement(By.cssSelector(".tile-consultation:nth-of-type(2)"));
        professorI.click();

        Thread.sleep(1000);
        close = driver.findElement(By.cssSelector("button.btn-close"));
        close.click();
        Thread.sleep(1000);
     }

但是我怎样才能在一段时间内将1改为2、3d等等呢?

您已经完成了工作。您已经在此处找到了web元素并创建了listiterator:

List<WebElement> professors = driver.findElements(By.className("tile-consultation"));
ListIterator<WebElement> theListOfProfessors = professors.listIterator();

你已经把工作做完了。您已经在此处找到了web元素并创建了listiterator:

List<WebElement> professors = driver.findElements(By.className("tile-consultation"));
ListIterator<WebElement> theListOfProfessors = professors.listIterator();

您可能希望使用findElements复数方法,该方法应返回与选择器匹配的所有元素的集合。然后,只需从选择器中删除第n个类型,它就应该匹配所有类型。我做了,我将添加其余的代码。我不熟悉您使用的语言,但您应该不需要执行driver.findElementBy.cssSelector.tile咨询:typex的第n个。你为什么这么做?你应该已经在Listofprofessors中拥有了所有的web元素-你应该迭代它,而不是再次尝试检索web元素。我不熟悉Java,但我的最佳猜测是类似以下伪代码的东西,而Listofprofessors.hasNext:WebElement elem=Listofprofessors.next…-你已经拥有了这个对象,你只需要使用它!很高兴听到@M.T-我已经将此表述为一个答案。如果它对你有用,请考虑接受它作为这个问题的答案。你可能想要使用FIFEDATIONS复数方法,它应该返回与选择器匹配的所有元素的集合。然后,只需从选择器中删除第n个类型,它就应该匹配所有类型。我做了,我将添加其余的代码。我不熟悉您使用的语言,但您应该不需要执行driver.findElementBy.cssSelector.tile咨询:typex的第n个。你为什么这么做?你应该已经在Listofprofessors中拥有了所有的web元素-你应该迭代它,而不是再次尝试检索web元素。我不熟悉Java,但我的最佳猜测是类似以下伪代码的东西,而Listofprofessors.hasNext:WebElement elem=Listofprofessors.next…-你已经拥有了这个对象,你只需要使用它!很高兴听到@M.T-我已经将此表述为一个答案。如果它对你有用,请考虑接受它作为这个问题的答案。