【问题标题】:Unable to select drop-down list item on Google's Advance Search page无法在 Google 的高级搜索页面上选择下拉列表项
【发布时间】:2018-03-19 00:31:48
【问题描述】:

问题: 无法从下拉列表中选择语言。

请帮忙!!

测试步骤:

  1. 转到https://www.google.co.in/
  2. 点击右下角的“设置”。
  3. 现在点击“高级搜索”
  4. 将打开高级搜索页面。
  5. 点击名称为“任意语言”的下拉菜单。
  6. 将打开语言的下拉列表。
  7. 从下拉列表中选择任何语言,比如印地语。

代码如下:

    public class DropDown_Settings {            
    static String baseURL = "https://google.com";
    static WebDriver driver;

    public static void main(String[] args) throws InterruptedException 
    {
        driver= new FirefoxDriver();
        driver.get(baseURL);
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
        driver.findElement(By.xpath(".//*[@id='fsettl']")).click();
        driver.findElement(By.xpath(".//*[@id='advsl']/a[text()='Advanced 
        search']")).click();
        driver.findElement(By.cssSelector("#lr_button")).click();               
        WebElement dropDown=driver.findElement(By.id("lr_menu"));
        List<WebElement> options=dropDown.findElements(By.tagName("li"));
        System.out.println(options.size());
        for(WebElement value:options){
        if(value.getText().equals("Hindi")){
            System.out.println(value.getText());
            value.click();
            break;
        }
    }           
    }
    }    

【问题讨论】:

  • 我明白了,奇怪
  • @iamsankalp89 请帮忙!!!
  • 我会尽力而为
  • @iamsankalp89 你在吗??
  • 是的,奇怪的是不行

标签: selenium selenium-webdriver automated-tests selenium-rc browser-automation


【解决方案1】:

您的代码在 Chrome 中运行良好,试试这个代码,它在 Firefox 和 chrome 中都可以运行

在 Firefox 和 Chrome 中试试这个代码:

        System.setProperty("webdriver.chrome.driver","E:/software and tools/chromedriver_win32/chromedriver.exe");
    WebDriver driver=new ChromeDriver();
      driver.manage().window().maximize();
      driver.get("https://www.google.co.in/");

      driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
        driver.findElement(By.xpath(".//*[@id='fsettl']")).click();
        driver.findElement(By.xpath(".//*[@id='advsl']/a[text()='Advanced search']")).click();
        driver.findElement(By.cssSelector("#lr_button")).click();               
        WebElement dropDown=driver.findElement(By.id("lr_menu"));
        List<WebElement> options=dropDown.findElements(By.tagName("li"));
        System.out.println(options.size());
        for(int i=0;i<options.size();i++){

            String langName=options.get(i).getText();
            if(langName.contains("Hindi"))
            {
                options.get(i).click();
                break;
            }

        }    

【讨论】:

  • 我不知道为什么它在 FF 中不起作用但在 Chrome 中起作用
【解决方案2】:
System.setProperty("webdriver.chrome.driver", "./drivers/chromedriver.exe");
  WebDriver driver= new ChromeDriver();
  driver.get("https://www.google.co.in/");
  driver.manage().window().maximize();
  driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
  driver.findElement(By.xpath("//a[@id='fsettl']")).click();
  Thread.sleep(3000);
  driver.findElement(By.xpath("//span[@id='advsl']//a")).click();
  Thread.sleep(10000);
  driver.findElement(By.xpath("//div[@id='lr_button']")).click();
  driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
  driver.findElement(By.xpath("//ul[@id='lr_menu']//li[23]")).click();


}

【讨论】:

  • 在 Chrome 中工作正常,但在 Firefox 中(不)..什么原因?
  • 我猜,FF 有一些特定于版本的问题。我使用的是 FF 版本 47 和 selenium 版本 2.53.1,但它无法正常工作。
  • 当我使用 chrome 最新版本和 selenium 3.6 版时,它工作正常。
猜你喜欢
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 2016-10-13
相关资源
最近更新 更多