【问题标题】:I'm not able to open "All" drop down from Amazon.ca page through selenium web driver using Java我无法使用 Java 通过 selenium Web 驱动程序从 Amazon.ca 页面打开“全部”下拉菜单
【发布时间】:2019-10-23 14:43:33
【问题描述】:

复制步骤:

  • 打开亚马逊主页
  • 请参阅页面左上方的“全部”下拉选项。
  • 尝试点击它(通过 Selenium WebDriver 使用 Java)

代码:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.className("nav-search-scope nav-sprite"))).click();
         WebElement element=driver.findElement(By.className("nav-search-scope nav-sprite"));

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.className("nav-search-scope nav-sprite"))).click();
         WebElement element=driver.findElement(By.className("nav-search-scope nav-sprite"));

【问题讨论】:

    标签: javascript java selenium-webdriver drop-down-menu


    【解决方案1】:

    希望对你有所帮助。

    WebElement lelement=driver.findElement(By.className("nav-search-scope nav-sprite"));
    Select oSelect = new Select(lelement);        
    java.util.List <WebElement> elementCount = oSelect.getOptions(); // get all options from your drop down 
    int iSize = elementCount.size();
    String [] arrbtn= new String [iSize];           
    for (int j = 0; j < iSize; j++) {
        arrbtn[j]=elementCount.get(j).getText();
        if(arrbtn[j]=="All"){ 
            oSelect .selectByVisibleText("All");
        }
    }
    

    或者您可以使用以下方法选择“全部”选项。

    public static void  getDropdownAllOption(WebDriver driver,WebElement lelement)
    {
        Select oSelect = new Select(lelement);        
        java.util.List <WebElement> elementCount = oSelect.getOptions(); // get all options from your drop down 
        int iSize = elementCount.size();
        String [] arrbtn= new String [iSize];           
        for (int j = 0; j < iSize; j++) {
            arrbtn[j]=elementCount.get(j).getText();
            if(arrbtn[j]=="All"){ 
                oSelect .selectByVisibleText("All");
            }
        }
    
    }
    

    如果您需要通过可见文本选择下拉菜单,您可以使用以下方法:

    public static void selectByVisible(WebElement lelement,String selectValue) 
    {
        WebElement mySelect =lelement;                  
        Select mySelectd= new Select(mySelect);         
        mySelectd .selectByVisibleText(selectValue);
     }
    

    【讨论】:

      【解决方案2】:

      请试试这个

      driver = new ChromeDriver();
              driver.get("https://www.amazon.ca/");
              WebDriverWait wait = new WebDriverWait(driver, 10);
      
              driver.findElement(By.className("nav-search-scope")).click();
              Select selects = new Select(driver.findElement(By.id("searchDropdownBox")));
      
              selects.getOptions().forEach(e -> System.out.println(e.getText() + "  is Displayed : " + e.isDisplayed()));
              selects.getOptions().forEach(e -> System.out.println(e.getText() + "  is Enabled : " + e.isEnabled()));
              selects.getOptions().forEach(e -> System.out.println(e.getText() + "  is Selected : " + e.isSelected()));
      
              driver.quit();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-03
        • 1970-01-01
        • 1970-01-01
        • 2016-02-04
        • 2014-01-26
        • 2021-05-03
        相关资源
        最近更新 更多