Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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
Javascript 为什么我必须添加+;i+;进入Selenium Java循环中的第二个WebElement?_Javascript_Java_Selenium_For Loop_Selenium Webdriver - Fatal编程技术网

Javascript 为什么我必须添加+;i+;进入Selenium Java循环中的第二个WebElement?

Javascript 为什么我必须添加+;i+;进入Selenium Java循环中的第二个WebElement?,javascript,java,selenium,for-loop,selenium-webdriver,Javascript,Java,Selenium,For Loop,Selenium Webdriver,在Selenium Java中,我经常为循环编写代码,为什么我必须将+I+添加到第二个WebElement中,请参见随附的示例 for (int i = 1; i <= secondaryLinks.size(); i++){ WebElement links = driver.findElement(By.cssSelector(".FeatureHighlight .el:nth-of-type("+ i +") a")); // ... } for(int i=1;

在Selenium Java中,我经常为循环编写代码,为什么我必须将
+I+
添加到第二个WebElement中,请参见随附的示例

for (int i = 1; i <= secondaryLinks.size(); i++){
    WebElement links = driver.findElement(By.cssSelector(".FeatureHighlight .el:nth-of-type("+ i +") a"));
    // ...
}

for(int i=1;i不需要带索引的循环。您可以使用
findelelements()
并在具有
FeatureHighlight
类的元素中迭代具有
el
类的元素(
.FeatureHighlight.el
CSS选择器)。对于找到的每个元素,按标记名查找内部链接

示例实现:

List<WebElement> elements = driver.findElements(By.cssSelector(".FeatureHighlight .el"));
for (WebElement element: elements) {   
    WebElement link = element.findElement(By.tagName("a"));
    // ...
}
List elements=driver.findElements(By.cssSelector(“.FeatureHighlight.el”);
对于(WebElement:elements){
WebElement link=element.findElement(按.tagName(“a”));
// ...
}

这是一个索引-它会找到与选择器匹配的第n个元素。如果问题不在标题中,它会有所帮助。非常令人困惑的标题——抱怨标题中有问题的人完全有能力解决问题。他们真有建设性。@Archer如果他们不评论/抱怨,OP就不会知道这是一个糟糕的问题措辞问题。依我看,OP应该负责自己问题的措辞……但那只是我。谢谢你的帮助Alecxe,上面的for each循环非常适合只查找一个元素,但我需要查找多个元素,例如标题、段落文本等。因此for each不起作用。我最大的疑问是为什么我需要+I+在css选择器中。@Littlen我仍然不确定为什么for each不起作用,您可以使用
元素
WebElement来查找标题、段落等内部元素。您能发布页面的HTML代码和所需结果吗?谢谢您的帮助,但我的问题现在已经得到了回答。由于我的cli的敏感性ent我无法共享HTML。`for(int I=0;I<4;I++){WebElement element=driver.findElement(By.cssSelector(“h5”);element.isDisplayed();WebElement elementTwo=driver.findElement(By.cssSelector(“p”);WebElement elementThree=driver.findElement(By.cssSelector(“a”);}`