Selenium WebDriver:我无法自动化下拉列表元素

时间:2017-07-13 12:05:54

标签: selenium

对于任何愚蠢的错误,请原谅我,我仍然是业余爱好者 此外,我能够运行代码只是下拉选择部分不起作用 这是代码

package com.thinksys.dd;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class Autodd 
{
    public static void main(String[] args)
    {

       System.setProperty("webdriver.gecko.driver","C:\\Users\\thinksysuser\\Downloads\\geckodriver-v0.18.0-win64\\geckodriver.exe");
       WebDriver driver= new FirefoxDriver();
       driver.get("http://newtours.demoaut.com/mercuryregister.php?%20osCsid=e6b6a3a86207b80bb2d346a613c378da");

       WebElement e = driver.findElement(By.name("country"));
       Select index = new Select(e);
       index.selectByVisibleText("PORTUGAL");
    }
}

4 个答案:

答案 0 :(得分:0)

用以下代码替换您的代码。它应该可以工作。

index.selectByVisibleText("PORTUGAL ");

答案 1 :(得分:0)

这里的实际问题不在于选择类或其方法。我们在这里缺少隐含的等待。只需在启动驱动程序后添加隐式等待,然后代码就可以了。

System.setProperty("webdriver.gecko.driver", "/home/santhoshkumar/Softwares/Selenium/drivers/geckodriver");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("http://newtours.demoaut.com/mercuryregister.php?%20osCsid=e6b6a3a86207b80bb2d346a613c378da");

WebElement e = driver.findElement(By.name("country"));
Select index = new Select(e);
index.selectByVisibleText("PORTUGAL");

希望这会有所帮助。感谢。

答案 2 :(得分:0)

问题出现了,因为我的Firefox浏览器没有更新到最新版本,因为我已经完成了它运行得很好。

答案 3 :(得分:-2)

使用xpath定位器尝试此代码。

注意: - 在执行下面的代码之前提供几秒wait而不是使用absolute xpath,请使用relative xpath。

new Select(driver.findElement(By.xpath("//select[@name='country']"))).selectByVisibleText("PORTUGAL");
  

OR

new Select(driver.findElement(By.xpath("//select[@name='country']"))).selectByValue("167");