Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
如何使用SeleniumJava实现循环下拉值_Java_Selenium - Fatal编程技术网

如何使用SeleniumJava实现循环下拉值

如何使用SeleniumJava实现循环下拉值,java,selenium,Java,Selenium,我在一些国家有一个下拉列表,如下所示 我想将值US、CA、AF、AL、DZ、AS、AD发送到一个数组,使用Selenium和Java循环并打印 我尝试了以下方法 WebElement elementdrop = d.findElement(By.xpath("path")); List<WebElement> dropdownvalues = d.findElements(By.xpath("path")); for(WebElement value:dropdownvalues)

我在一些国家有一个下拉列表,如下所示

我想将值US、CA、AF、AL、DZ、AS、AD发送到一个数组,使用Selenium和Java循环并打印

我尝试了以下方法

WebElement elementdrop = d.findElement(By.xpath("path"));
List<WebElement> dropdownvalues = d.findElements(By.xpath("path"));
for(WebElement value:dropdownvalues)
{ 
  String pcvalues=value.getText();
  System.out.println("value names" + pcvalues);
 }
WebElement-elementdrop=d.findElement(By.xpath(“path”);
List dropdownvalues=d.findElements(By.xpath(“path”);
for(WebElement值:dropdownvalues)
{ 
字符串pcvalues=value.getText();
System.out.println(“值名称”+pcvalues);
}
这将打印美国、加拿大、阿富汗、阿尔巴尼亚等。但我希望像US CA AF AL DZ一样作为AD

WebElement dropdown=driver.findelelement(按名称(“国家”);
 WebElement dropdown = driver.findElement(By.name("Country"));

 List<WebElement> options = dropdown.findElements(By.tagName("option"));

 Iterator<WebElement> it=options.iterator();

   while(it.hasNext())
    {
      System.out.println(it.next().getAttribute("Value"));
    }
列表选项=下拉.findElements(按.tagName(“选项”)); Iterator it=options.Iterator(); while(it.hasNext()) { System.out.println(it.next().getAttribute(“Value”); }

尝试一下,让我知道它是否有效。

您能分享一下您为同样的问题所做的工作吗?这是一个非常直截了当的问题!!上面的下拉列表包含国家列表。在此列表中,每个国家/地区的名称都有相应的id,如US、CA、AF等。我希望此id为一个数组。您尝试过什么吗?你能分享你的代码和面临的问题吗?我试过这样做,WebElement elementdrop=d.findElement(By.xpath(“path”);List dropdownvalues=d.findElements(By.xpath(“path”);对于(WebElement value:dropdownvalues){String pcvalues=value.getText();System.out.println(“值名称”+pcvalues);}这将打印美国、加拿大、阿富汗、阿尔巴尼亚等。但我希望像我们一样,将CA AF AL DZ作为ADAlso,所以我需要做类似的事情。我将国家代码存储在一个变量中,如String code=“CA”;然后,我需要检查下拉列表中的代码是否可用。如果可用,请打印System.out.println(“可供选择的国家”);else print System.out.println(“无法选择的国家”);您能为此问题修改此代码吗?String code=“CA”;WebElement下拉列表=driver.findElement(按.name(“国家”));列表选项=下拉.findElements(按.tagName(“选项”));Iterator it=options.Iterator();while(it.hasNext()){if(it.next().getAttribute(“Value”)==CODE){print System.out.println(“可供选择的国家”);}else{print System.out.println(“不可选择的国家”);}是的,你可以这样做。你面临的问题是什么?我有国家代码列表。我想检查这些国家/地区代码是否与下拉列表中的值匹配。您可能需要重新学习编码技能。在这种情况下,当您拥有该值时,您应该能够将其用于计算。查看您的代码,我发现您可以使用'equalsIgnoreCase'而不是==来解决问题。