Java Selenium分别选择具有相同类的每个div
我正在尝试使用中的class tile consultation选择所有div,单击每个div并从每个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();
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-我已经将此表述为一个答案。如果它对你有用,请考虑接受它作为这个问题的答案。